先到者为君,后到者为臣!作为技术屌丝的你,肯定有过很多感慨,不要总是步人后尘,请加入我们的Hadoop先行者行列,让我们一起走在大数据时代的前列。

尖峰在线培训学员作品

每位在尖峰在线培训的同学都可以获得基础知识和实战操作的双重提高

深入解析一条SQL逻辑读在BUFFER CACHE的LRU算法

下面正式开始:--首先是逻辑读的过程

1.前台进程发出查询语句
2.根据DBA计算HASH值,根据HASH值找到相应的Hash bucket
3.获取CBC LATCH,如获取失败,则将产生:latch:cache buffers chains
4.在CBC LATCH保护下,服务器进程扫描hash chain,查找是否有所需BH
5.如查找到所需BH,将在Buffer Header上加buffer pin锁(这里是读操作所以是共享锁(找到BH时的锁常见有:当前读锁、一致读锁或修改锁),如获取buffer pin失败(比如正在X模式申请S模式),会产生buffer busy waits等待),并根据BH中指定的块在内存中实际地址,读取buffer,并将结果返回前台进程。读取完毕(纳秒级)后,将再次获取CBC LATCH,释放buffer pin锁,再释放CBC LATCH。

-----以上为逻辑读,如果未找到buffer,将发生如下的物理读:


完整文档请点击:  下载

2014-03-13 12:58:19
Copyright © JianFengEdu.com 2013. All Rights Reserved . 尖峰在线培训 版权所有 . 浙ICP备14005612号-1  
  • QQ咨询

  • 点击这里给我发消息 陈老师
  • 点击这里给我发消息 郭老师
  • DBA基础学习群

    尖峰OracleDBA基础学习群
  • 电话咨询

  • 13735456161