讀書筆記-高階owi與oracle效能調整-share pool

selectshen發表於2014-09-05
latch:shared pool
shared pool 鎖存器一般在整個例項上只存在一個(9i之前).
hard parsing嚴重時,經常發生分割chunk的現象,因此在空閒列上出現許多較小空閒的chunk的現象.這種現象稱為共享池的碎片化,延長查詢空閒列 的時間.共享池碎片化是引發shared pool鎖存器爭用的根本原因.ora-4031錯誤也是由碎片化引發的.
最好的解決方法就是為避免發生hard parsing,恰當使用bind變數.但不容易對動態的應用程式進行修正.
oracle提供了幾個解決問題的方法:
(1)oracle 9i以上版本起,共享池分為多個副池,最多由7個副池分別進行管理.
(2)hard parsing引發shared pool鎖存器爭用時,另外的解決方法是減少共享池大小.但這時發生ora-4031的錯誤機率高.可以利用dbms_shared_pool.keep ,應用將經常使用的sql cursor,程式包,procedure等永久置於共享池的方法.
(3)提供cursor sharing方法.

latch:library cache
為了執行sql,透過library cache鎖存器,保護檢索並管理庫高速緩衝區的所有工作.library cache鎖存器擁有與比cpu count值
大的最小質數值相同數量的子鎖存器.
library cahce爭用主要在哪下情況下發生:
(1)hard parsing 或soft parsing過多時
(2)version count 高時
(3)sga區域發生pageout時
library cache鎖存器爭用的最重要原因也是hard parsing.因為檢索庫高速緩衝區的次數增加,相應地擁有library cache鎖存器
的時間和次數會增加;hard parsing時,不僅需要對庫高速緩衝區的查詢,還需要進行額外的chunk分配,因此相應地延長了擁有library
cache鎖存器的時間.
對於soft parsing引發的library cache鎖存器爭用,大致有兩種解決方案:
(1)減少parsing次數,最好的方法是一次parsing後執行數次.
(2)利用session_cached_cursors引數.
各種OS在oracle中,防止sga的page out的方法如下:
hp_ux,aix:將lock_sga引數值修改為true(預設值是false)
sunos:確認_use_ism引數值是否是true(預設值是false)

library cache lock,library cache pin
library cache lock:訪問或修改庫高速緩衝區的物件時,對庫高速緩衝區控制程式碼獲得的鎖.在獲得library cache lock的過程中,如果發生爭用,則等待library cache lock事件.
library cache pin:對庫高速緩衝區物件訪問或修改時,對library cache object(LCO)獲得鎖.library cache pin是在獲得library cache lock後,需要對庫高速緩衝區物件進行追加工作時獲取.
(1)library cache lock和library cache pin等待引起的效能下降現象,大部份是因不適當的ddl引發的.
(2)hard parsing頻繁的系統上,也可能出現library cache pin等待.最好的解決方法是恰當地使用bind變數,也可以考慮cursor sharing等方法.

row cache lock
oracle將資料字典資訊存於sga內的行高速緩衝區.想要修改資料字典內容的程式,應對其相應的row cache object獲得row cache
lock.其中最具代表性的是sequence.
除了sequence之外,幾科沒有如此頻繁地修改行高速緩衝區資訊的.因此,出現row cache等待時,需要確認sequence上是否賦予了nocache屬性.

enq:sq-contention,dfs lock handle(sv)
row cache lock:在呼叫sequence.nextval過程中,將資料字典資訊進行物理修改時獲取.賦予了nocache屬性的sequence上發生.sq 鎖:在記憶體上快取的範圍內,呼叫sequence.nextval期間擁有此鎖.賦予了cache屬性的sequence上發生.sv鎖:rac上節點之 間順序得到保障的情況下,呼叫sequence.nextval期間擁有.賦予了cache+order屬性的sequence上發生.
建立sequence賦予的cache值較小時,有enq:sq-contention等待增加的趨勢.

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

相關文章