BUFFER CACHE寻找流程

简介: 1、获得保护hash bucket的CACHE BUFFERS CHAINS锁存器,读取需要SHARED模式,如果是修改则需要EXCLUSIVE模式,如果发生争用等待latch:cache buffers chains2、查看BUFFER HEA...
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。
目录
打赏
0
0
0
0
91
分享
相关文章
Cache 和 Buffer 有什么区别?
Cache 和 Buffer 有什么区别?
154 0
Ask Hoegh(5)——buffer cache和buffer有什么区别?
问: Oracle数据库的SGA包含db block buffer cache和redo buffer等组件,那么,同样属于内存,buffer cache和buffer有区别吗? 答:首先我们对比一下db block buffer cache和redo buffer的概念和功能。
1194 0
free命令、buffer与cache的区别
freefree 命令相对于top 提供了更简洁的查看系统内存使用情况: # free total used free shared buffers cached Mem: 255988 ...
914 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等