《深入解析Oracle》第六章,Buffer Cache與Shared Pool原理

louloueva發表於2009-04-02

終於碰到一個難啃的骨頭了
從章節的題目就能看出,比較深入的一章
所以……即便用了超長的4天時間,但沒看懂的地方依然很多
沒轍,先按計劃看完全書吧,回頭等借完別人,拿回來之後再細讀


Buffer Cache與Shared Pool屬於SGA範疇
圍繞它們,可深入的程度足夠專門寫篇論文來進行探討了……
簡單記錄一些,以待日後研究
LRU list,管理記憶體中的Buffer
Dirty list,管理修改後的Buffer
Cache Buffers Chain閂鎖競爭,通過Bucket操作Buffer時相應Latch所產生的競爭
Cache Buffers LRU Chain閂鎖競爭,利用LRU管理Buffer時相應Latch所產生的競爭
通過多緩衝池技術(子緩衝池),可管理更大共享池,但同時也可能帶來ORA-04031的隱患
ORA-04031,無法請求到所需共享池連續記憶體的分配,就會出現此錯誤
造成此問題的原因有很多,比如Oracle的Bug,SQL編寫問題(如無繫結變數,SQL無法共享)等
可謹慎使用alter system flush shared_pool;命令臨時清理共享池無用內容
或設定SHARED_POOL_RESERVED_SIZE引數,指定保留共享池數值
還有其它一些方法
V$SQL和V$SQLAREA這兩個檢視都是存放SQL的,以前簡單總結過
結合V$LATCH,V$SESSION_WAIT,可以有效解決一些SQL引發的資料庫問題


總結寫的不多,從側面反映出個人對此章節所講解的知識還較生疏
準備下次再看此章的時候,要利用文中介紹的一些轉儲命令對相關記憶體資訊進行轉儲
這樣也許能幫助自己加深瞭解
唉……進度又滯後了……本週末事務還較多……麻煩啊 ◎◎

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

相關文章