- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(Oracle体系结构与基本概念
Oracle体系结构与基本概念
racle有为各种编程语言实现的API
Oracle优化器,是oracle个软件层与最大化性能相关。
Oracle器体系结构,包括内存、进程以及用来提供数据库服务相互交互的文件。
Oracle对象,包括表、索引、分区及用来实现数据模内容。
racleAPI
OCI 是C语言的API
JDBC通用的API java数据库连接器
.NET是.net程序与数据库进行通信的API。
一条SQL语句在端都表现为一个上下文区域一个游标。
游标。游标是内存中的一块区域,用来保存当前打开的SQL语句的信息。Oracle共享内存中进行检索,确认是否存在这的缓存副本。解析检查的语法,对象引用及调用racle优化器来确定查询计划。
为绑定变量值在执行之前,所有绑定变量的值都必须到这条上。
执行。如果这不是一条查询语句,它的执行过程包含DML语或者DDL语句的执行如果查询语句,执行为语句的数据提取做准备。
提取记录。查询语句来说,数据提取意味从结果集提取和条或者多条记录。
游标。一步涉及释放与此游标相关的所有内存以其他资源(尽管个游标的共享部分可能仍然保留在oracle共享内存中)。
游标游标。游标是内存中的一块区域,用来保存当前打开的SQL语句的信息。语句的已经解析的与未经解析的内容、执行计划及一个指向当前记录的指针。
SQL语句执行完成时,与此游标相关的内容可以出于其他目的被释放,也可以被保存供再次执行时使用。在的jdbc中一个游标等价于一个Statement或Prepared Statement。
缓存的
Oracle维护了一个缓存,来保存最近执行的以及对应的执行计划。这缓保存在共享内存的一个区域中:共享池(shared poolSQL area中。每一个SQL语句的执行请求,oracle会在这个缓存中检索匹配的语句如果到oracle会用保存在这个缓存中的执行计划,从避免解析过程中涉及到的大部分开销。
检查SQL语法是否有效。即关键字操作符否有效地被正确使用。
在义是否有效。即条SQL引用的所有数据库对象(即表和字段)否都有效。
用户是否有对所相关对象执行给定操作的安全权限。
SQL语句的执行计划。执行描述oracle和修改数据时涉及的一系列步骤。这oracle优化器来完成解释是一个昂贵的操作,它的开常常会被高IO请求带来更大开销所掩盖。
绑定变量
中可以包含变量,们在每次执行时都可变化。通常些变量是的参数。该定义将被记录或将要被插入或更新的新值。我以字面量”绑定“变量”方式来指定这些。
“字面量”
select * from employee where employee_id= 206;
里的是字面。
过请注意,SQL必须完全一才能在共享池中找到匹配项。因为执行时employee_id能都不一样,所以几总是法共享池中找到语句,从而导致这个语句每次都需要重新解析。
字面量”的坏处:
每次改变字面量的值,都必须对进行重新解析
请求解析时,在共享池中找到一的的可能性将非常小。
SQL将被“仅用一次”填满。可需要更大的容积,但事实上并不需要这么多。
一个oracle想要在共享池中新一条时,它必须获取一个oracle锁(闩锁或互斥)在极端情况下,这会导致闩锁或互斥的争用,进而导致性能瓶颈。绑定变量”的方法来指定这些变量部分:
变量是对这些变量的固定引用。它可以被定义在编程语言或查询工具的任何地方。在部分编程语言或工具中,绑定变量都需要添加个前缀(冒号)、
SQLVARIABLE bind_employee_number NUMBER
SQLBEGIN
:bind_employee_number := 206;
END;
SQLSELECT * FROM employee where employee_id = :bind_employee_number
使用绑定变量有两个好处:
如果绑定变量的值发生变化,在重新执行这条的时候,不需要创建一个新的游标或重新解析这条。
其他会话也执行同一条,它可以在共享池中到一条匹配,因为不同执行进程中绑定变量的名称并不会发生改变。
SQL语句
当SQL语句解析完毕且所有变量都已绑定时,oracle做的执行SQL的准备。
执行,将导致SQL变动,尽管COMMIT语句执行前这个变更不会被持久化。
果执行的是SELECT,那么调用只是为提取(fetch准备好游标。执行的是某些特定的查询时(当记录必须进行排序或者锁定,打开游标就会oracle提取需要返回的所有记录。在情况下,打开游标只是将记录指针定位到一条记录。
记录
数据返回客户端都由fetch完成。fetch从数据库提取一条或条记录,并将结果保存到程序可操作的主机变量中。内部,oracle能会从磁盘或缓冲
您可能关注的文档
最近下载
- 消渴病(2型糖尿病)中医临床路径方案临床疗效总结分析报告.docx VIP
- 碳排放监测员职业理论考试题及答案.doc VIP
- 肿瘤标志物ppt课件.pptx VIP
- 碳排放监测员(高级)技能鉴定考试题及答案.doc VIP
- 项目管理知识体系指南.pdf VIP
- BactAlert 3D 240 型自动血培养分析仪仪器操作规程 (一) 检测原理.pdf VIP
- 35KV电抗器试验报告.doc VIP
- DG_TJ08-2401-2022:桥梁工程超高性能混凝土应用技术标准.pdf VIP
- 2024年新苏科版八年级上册物理课件 第二章 第四节 光的反射.pptx VIP
- 道路施工技术交底大全.pdf VIP
文档评论(0)