标签:oracle
oracle物理体系结构图如上:
PGA——>SGA+进程——>数据库
一、select object_name from t where object_id=29(执行过程分析)
1、在PGA(发起用户使用的私有内存空间)中检查是否有该查询的用户连接和权限信息,如果有,则直接使用,不用去硬盘中读取。此外若能放下排序规则,此处也可以进行排序
2、在共享池查询什么地方有存储过这个sql指令的***(唯一的hash值),如果没有,先检查该语句的语法语义等,如果没问题,生成它的唯一hash值,存储下来
3、解析:eg:用全表扫描还是索引,哪个更高效,决定后该执行计划存储下来,并和生成的hash值组成一对
4、去数据缓冲区拿数据,如果没拿到,去数据库的数据文件中拿数,返回给数据缓冲区
二、执行计划
结果中主要属性:recurslve calls:递归调用 consistent gets:逻辑读 physical reads:物理读
三、update t set objec_id=92 where object_id=29
1、2、3、4和上面一样,
5、在数据缓冲区修改数据,通过DBWR进程写入数据库
6、日志缓冲区保存了数据库相关操作的日志,LGWR进程把日志缓冲区记录的日志写入磁盘的日志文件
7、日志文件循环写入,如果满了,先备份成归档文件arch再去写,此外,arch文件也需要定时转移到新的存储介质
标签:oracle
原文地址:http://jun123.blog.51cto.com/9893428/1682383