buffer cache部分原理(LRU)

oracle_ace發表於2007-12-12
   當一個server process到buffer cache訪問資料塊的時候,首先他要搜尋LRU列表的MRU看看他所要找的資料塊在不在我們buffer_cache中,如果在就直接訪問這個block,此時的命中是在buffer中,如果沒有找到所需要的資料,這個時候,就要從資料庫檔案中讀取這個block到buffer cache中來,然後在訪問這個block,這個時候server process也會在LRU列表中的空閒空間搜尋並尋找一個大小合適的空閒快取,如果沒有搜尋到空閒快取,則從LRU端開始繼續搜尋可重用的block或者達到查詢的最大限制(40%),這個期間如果也發現了LRU列表中還沒有移入dirty列表中的髒資料庫塊則會將這個資料塊移入dirty列表中,等待dbwn程式將他們寫入資料檔案。如果找到空間後,就從磁碟將資料讀入到我們所找到的空間快取中,並將這個快取塊移LRU列表的MRU端。

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

相關文章