DB BUFFER LRU 列表的latch等待

caohongfeng666發表於2019-05-31


DB BUFFER LRU 列表的latch等待


總結出來如下兩種情況會導致latch等待:


1. 載入記憶體,寫入LRU列表

程式欲讀取還沒有裝載到記憶體上的塊時,透過查詢LRU 列分配到所需空閒緩衝區,在此過程中需要cache buffers lru chain latch。


2. 刷髒塊,同步到物理檔案

資料庫寫入程式將髒緩衝區記錄到檔案上,查詢LRU LIST,將相應緩衝區移動到FREE LIST的過程中,也要獲得cache buffers lru chain latch。

在如下情況下將髒緩衝區記錄到檔案裡:

2.1)session對應的服務程式為了獲得空閒緩衝區,向DBWR 請求記錄髒緩衝區時;

2.2)Oracle程式為執行Parallel Query 或 Backup,Truncate/Drop等工作,請求記錄相關物件的髒緩衝區時; 

2.3)週期性或管理上的原因檢查點(checkpointing)被執行時。

2.4)Oracle 為了保障將透過FAST_START_MTTR_TARGET(或LOG_CHECKPOINT_TIMEOUT)指定的時間的恢復,週期性執行檢查點。

2.5)管理員執行檢查點命令或根據日誌檔案切換,也會發生檢查點。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25380026/viewspace-2646368/,如需轉載,請註明出處,否則將追究法律責任。

相關文章