oracle-数据库物理结构.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1)语句解析 当一个查询语句(SELECT)发送到服务器端后,服务进程首先使用Oracle 内部的“散列”(HASH)函数取得该语句的解析代码值,如果在共享池中存在相同的解析代码值,表明 该语句已经存在,那么服务器进程会跳过“解析”阶段,直接转入下一阶段。 如果该解析代码值在共享池中不存在,服务器进程会检查该语句是否符合SQL 语法规则,并检查表名、列名是否正确,以及是否有相应的查询权限,然后生成该语句的“执行计 划”,最终将SELECT 语句和执行计划装载到库高速缓存。 执行计划实际是Oracle 内部执行SQL 语句的具体步骤,执行计划的优劣会对应用系统性能产生很大的影响,所以在开发应用系统时一定要采用“执行计划最佳”的SQL 语句。 例如,一个表上建立有索引和没有索引,生成的执行计划可能是不同的。 2).绑定变量 在此阶段,如果查询语句中有绑定变量,语句就要获得绑定的变量值。 3).执行 经过语句解析,Oracle 最终生成了执行计划,并将该执行计划装载到了库高速缓存。在执行阶段,服务器进程将按照执行计划中所安排的步骤来执行SELECT 语句。 首先,服务器进程要确定被选择行所在数据块是否已经被读取到数据高速缓存,如果该数据块内容已经被读取到数据高速缓存,则转入“提取数据”阶段; 如果该数据块没有被读取到数据高速缓存,那么服务进程会将数据块内容复制到数据高速缓存的缓冲区中 4).提取数据(fetch) 经过语句执行之后,被选择行所在数据块内容已经被复制到了数据高速缓存的缓冲区 中。在提取数据阶段,服务器进程从数据高速缓存中选择相应数据行,并将结果返回到用户 进程。 1.6.3 处理DML 语句 处理DML 语句分为3 个步骤: ? 语句解析(Parse) ? 绑定变量(Bind) ? 执行(Execute) 1.语句解析 类似于处理SELECT 语句的过程,服务器进程根据HASH 函数生成该语句的解析代码 值,然后检查DML 语句语法、DML 语句所对应的表名、列名等,最终生成该语句的执行 计划,然后将DML 语句及执行计划存储到库高速缓存 2.绑定变量 在此阶段,如果DML 语句中有绑定变量,语句就要获得绑定的变量值。 3.执行DML 在经过语句解析之后,DML 语句的执行计划被存储到了库高速缓存。在执行阶段,服务器进程将按照解析阶段所生成的执行计划来执行该DML 语句。 对于UPDATE 语句,服务进程首先要检查对应的数据块和回滚块在数据高速缓存中是否已经存在,如果不存在,则会从数据文件中将对应的数据块和回滚块内容复制到数据高速缓存。回滚块用来存储旧值,这样在必要时就可以回滚DML 语句。 然后,服务器进程在要修改的数据行上加锁,防止其他用户修改该数据。 最后,服务器进程将旧数据写入到回滚块所对应的缓冲区,将新数据写入到数据块所对应的缓冲区。同时将数据块和回滚块的变化记载到重做日志缓冲区。服务器进程写入数据块和回滚块都是在数据高速缓存中完成的。被修改的数据块和回滚块被标识为“脏缓冲区”。 DELETE 和INSERT 语句的处理过程类似UPDATE,DELETE 语句的旧值包含被删除行的所有列值,而INSERT 语句旧值包含的是行位置信息。 对于DDL 语句,与DML 语句有所不同,因为执行DDL 语句需要写数据字典。DDL语句的执行包含语句解析、数据字典查找和执行过程。 2.6.4 处理Commit 语句 当用户发出COMMIT 命令时,服务器进程首先将COMMIT和SCN 写入到重做日志缓 冲区;然后LGWR 进程将重做日志缓冲区的所有重做记录写入到重做日志文件中;在将事 务修改写入到重做日志之后,服务器进程将提交成功信息返回到用户进程;最后,服务器进程释放事务所占有的锁。 COMMIT 语句会导致将修改记录到重做日志文件,而不会写入数据文件。 2.7 小结 本章介绍了Oracle 服务器的总体结构以及工作原理,Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统。Oracle 服务器由实例和数据库两部分构成。 实例由内存结构和后台进程组成。Oracle 内存结构被总称为SGA,包括数据高速缓冲区、重 做日志缓冲区、共享池、Java 池和大池;后台进程主要包括以下几个进程SMON、PMON、 DBWn、CKPT、LGWR 和ARCn。 Oracle 数据库由数据文件、控制文件和重做日志文件组 成。在逻辑结构上,Oracle 数据库由表空间、段、数据区间和数据块构成。 2.8 练习 见word文档 第二章 Oracle数据库体系结构 续 杨进 goodskyfly@163.com 2.4 数据库物理结构 数据库是数据存储的容器,作用是用来收集、存储数据和返回信

文档评论(0)

金华 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档