Chinaunix首页 | 论坛 | 博客
  • 博客访问: 193665
  • 博文数量: 35
  • 博客积分: 656
  • 博客等级: 上士
  • 技术积分: 543
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-25 10:22
文章分类

全部博文(35)

文章存档

2018年(3)

2015年(1)

2013年(8)

2012年(12)

2011年(11)

我的朋友

分类: Oracle

2013-06-20 08:45:36

1、获得保护hash bucket的CACHE BUFFERS CHAINS锁存器,读取需要SHARED模式,如果是修改则需要EXCLUSIVE模式,
如果发生争用等待latch:cache buffers chains
2、查看BUFFER HEADER,块是否已经在BUFFER里面,如果在对相应的缓冲区进行shared模式或者EXCLUSIVE模式的
buffer lock,如果发生BUFFER LOCK争用则等待BUFFER BUSY WAITS,如果正在通过DBWR写入到
缓冲区,则等待WRITE COMPLETE WAITS(逻辑读)
3、如果不在BUFFER CACHE中,获得CACHE BUFFER LRU chain后在LRU辅助列上检索空闲区域,
如果辅助区没有空闲区域,就在主队列上按照COLD HOT的COLD端寻找,如果找到可以覆盖的缓冲
区域,则对缓冲区叫EXCLUSIVE模式的BUFFER LOCK,并且将数据块读入到环境区,如果获得BUFFER LOCK
的过程发生争用则等待READ BY OYHER SESSION(物理读)
4、如果还是没有找到,服务器进程请求DBWR将脏数据写到数据文件,确保空闲缓冲区,如果等待DBWR写盘的时间就是FREE BUFFER WAITS。

阅读(2326) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~