讀書筆記-高階owi與oracle效能調整-share pool
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等待增加的趨勢.
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讀書筆記-高階owi與oracle效能調整-io筆記Oracle
- 讀書筆記-高階owi與oracle效能調整-segment筆記Oracle
- 讀書筆記-高階owi與oracle效能調整-transaction筆記Oracle
- 讀書筆記-高階owi與oracle效能調整-oracle internal筆記Oracle
- 讀書筆記-高階owi與oracle效能調整-network筆記Oracle
- 讀書筆記-高階owi與oracle效能調整-cache buffer筆記Oracle
- 讀書筆記-高階owi與oracle效能調整-latch和lock筆記Oracle
- <轉>oracle效能調整讀書筆記(1)Oracle筆記
- <轉>oracle效能調整讀書筆記(2)Oracle筆記
- <轉>oracle效能調整讀書筆記(3)Oracle筆記
- <轉>oracle效能調整讀書筆記(4)Oracle筆記
- <轉>oracle效能調整讀書筆記(5)Oracle筆記
- Oracle效能調整筆記Oracle筆記
- Shared pool深入分析及效能調整
- oracle高階效能調整培訓pptOracle
- oracle效能調整筆記[zt]Oracle筆記
- Shared pool深入分析及效能調整(一)
- Shared pool深入分析及效能調整(二)
- OWI效能診斷與調整實踐指南(1~4)
- 效能與RAC 讀書筆記筆記
- swift高階運算子-讀書筆記Swift筆記
- 共享池的調整與優化(Shared pool Tuning)優化
- C#高階程式設計 讀書筆記C#程式設計筆記
- Oracle記憶體分配與使用小記(二)Shared Pool and Large PoolOracle記憶體
- 《整數分解》讀書筆記筆記
- MySQL管理之道_ 效能調優、高可用與監控(第2版)-by 賀春暢-讀書筆記MySql筆記
- oracle高效能sql調整-筆記1 (轉發)OracleSQL筆記
- [書籍] Oracle Database 10g效能調整與優化OracleDatabase優化
- python高階程式設計讀書筆記(一)Python程式設計筆記
- 《讀書與做人》讀書筆記筆記
- oracle 效能調整Oracle
- 筆記: Oracle 11g效能調整(11.2)目錄筆記Oracle
- 《CSS重構:樣式表效能調優》讀書筆記CSS筆記
- Objective-C高階程式設計讀書筆記(二)Object程式設計筆記
- Objective-C高階程式設計讀書筆記(一)Object程式設計筆記
- Oracle效能調整之--DML語句效能調整Oracle
- Oracle shared poolOracle
- oracle效能調整(1)Oracle