buffer cache的組成及剖析

                                             數據庫緩衝區緩存(database buffer cache)


BUFFER CACHE:

作用:用於緩存數據物理磁盤上的磁盤塊,從而加快對磁盤上數據的訪問。

組成:  

Keep     pool : 緩存那些需要經常查詢但是又容易被默認緩衝區置換出去的對象,數據讀取到keep pool中,會一直保留在內存                                     中,不會被刷新出去,比如整天頻繁使用的表,放在保留池中,能夠有效的減少物理IO。      

Recycle pool : 回收池與保留池正好相反,用於緩存臨時使用的,不被經常使用的較大的對象,把這些段與保持池和默認池                                      中的段分開,防止保持池和默認池中的數據由於老化而退出緩存。

Default  pool 當沒有指定時,數據就會放在默認池中,也就是說,放在默認池的數據利用的是LRU機制指定DEFAULT將                                                                  適用默認的緩衝池。這個選項適用於沒有分配給KEEP緩衝池和RECYCLE緩衝池的其它數據庫對象。

                       (10gsga自動管理,ORACLE只會幫助我們管理default pool

buffer狀態

           0.free

           1.xcur 當前正在被使用,在單實例數據庫中current塊就等於xcurrent

           2.scur 在多實例數據庫RAC環境中才會出現scurrent

           3.cr 爲了保證讀一致性而使用undo空間構造的塊

           4.read 正在從磁盤裏讀入buffer中的塊

           5.mrec 進行media recovery時所生成的塊

           6.irec 進行instance recovery時所生成的塊

           7.write 通過DBWnbuffer中寫入磁盤數據文件中的塊

讀方式:

                邏輯讀:存在緩存

                物理讀:發生物理I0消耗資源

【注】:①查詢buffer cache中有多少buffer的語句 select count(*) from x$bh;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章