BUFFER CACHE尋找流程
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。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-763905/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IO之核心buffer----"buffer cache"
- Oracle Cache Buffer ChainsOracleAI
- 33、buffer_cache_3(redo的產生、LRBA、buffer cache裡的等待事件)事件
- Buffer Cache以及buffer busy waits/gc相關事件AIGC事件
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- 【Cache】將常用的“小表”快取到Buffer Cache快取
- Linux Buffer/Cache 的區別Linux
- buffer與cache的區別
- 清理buffer/cache/swap的方法梳理
- PostgreSQL DBA(89) - Linux(Buffer vs Cache)SQLLinux
- Linux記憶體、Swap、Cache、BufferLinux記憶體
- Cache 和 Buffer 的區別在哪裡?
- Cache 和 Buffer 有什麼區別?
- buffer cache深度分析及效能調整(五)
- buffer cache深度分析及效能調整(四)
- buffer cache深度分析及效能調整(六)
- 尋找真凶
- Linux工具效能調優系列二:buffer和cacheLinux
- Linux如何手動釋放Swap、Buffer和CacheLinux
- 尋找邊境
- [20231023]備庫與alter system flush buffer_cache.txt
- 手動釋放Linux上的Swap、Buffer和CacheLinux
- 08、 尋找周杰倫
- 162. 尋找峰值
- Cache和Buffer都是快取,有什麼區別?Linux快取Linux
- MySQL中binlog cache使用流程解惑MySql
- 尋找理想合夥人
- 為存在尋找目標
- 如何高效尋找素數
- 尋找《學雷鋒OL》
- LeetCode-162-尋找峰值LeetCode
- 尋找有生命的行星
- 工具 | 如何使用 IDAPython 尋找漏洞Python
- 大局事件風暴:尋找差距事件
- 尋找iOS上架技術iOS
- 尋找 iOS 上架技術iOS
- 尋找陣列的中心索引陣列索引
- 2837 尋找水仙花數
- 調整緩衝區快取記憶體(Buffer Cache)的效能(轉)快取記憶體