Oracle效能最佳化之診斷latch競爭(轉)
1、概念 Latch是簡單的、低層次的序列化技術,用以保護SGA中的共享資料結構,比如併發使用者列表和buffer cache裡的blocks資訊。一個伺服器程式或後臺程式在開始操作或尋找一個共享資料結構之前必須獲得對應的latch,在完成以後釋放latch。不必對latch本身進行最佳化,如果latch存在競爭,表明SGA的一部分正在經歷不正常的資源使用。 1)Latch的作用: A、序列化訪問:保護SGA中的共享資料結構;保護共享記憶體的分配。 B、序列化執行:避免同時執行某些關鍵程式碼;避免互相干擾。 2)Latch請求的兩種型別: A、willing-to-wait:請求的程式經過短時間的等待後再次發出請求,直到獲得latch B、immediate:如果沒有獲得latch,請求的程式不等待,而是繼續處理其他指令。 2、檢查Latch競爭 檢查latch free是不是主要的wait event: Select * from v$system_event order by time_waited; 檢查latch的使用情況: Select * from v$latch: 與willing-to-wait請求有關的列:gets、misses、sleeps、wait_time、cwait_time、spin_gets 與immediate請求有關的列:immediate_gets、immediate_misses Gets: number of successful willing-to-wait requests for a latch; Misses: number of times an initial wiling-to-wait request was unsuccessful; Sleeps: number of times a process waited after an initial willing-to-wait request; Wait_time: number of milliseconds waited after willing-to-wait request; Cwait_time: a measure of the cumulative wait time including the time spent spinning and sleeping,the overhead of context switches due to OS time slicing and page faults and interrupts; Spin_gets: gets that misses first try but succeed after spinning. Immediate_gets: number of successful immediate requests for each latch; Immediate_misss: number of unsuccessful immediate requests for each latch; 一般無需調整latch,但是下列的措施是有用的: A、對處於競爭中的latch做進一步的調查 B、如果競爭主要存在於shared pool和library cache中,可以考慮調整應用 C、如果進一步的調查顯示需要調整shared pool和buffer cache,就進行調整 Select * from v$latch where name like ‘%shared pool%’ or name like ‘%library cache%’; 如果競爭是在shared pool或library cache上,表示下列集中情況: A、不能共享的sql,應檢查他們是否相似,考慮以變數代替sql中的常量: Select sql_text from v$sqlarea where executions=1 order by upper(sql_text); B、共享sql被重新編譯,考慮library cache的大小是否需要調整: SELECT sql_text,parse_calls,executions FROM v$sqlarea where parse_calls>5; C、library cache不夠大。[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12180666/viewspace-1021790/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 轉_診斷latch:shared pool等待事件事件
- oracle 效能診斷工具Oracle
- ORACLE 11G 效能診斷最佳化之ASH實戰分析詳解Oracle
- Oracle效能診斷藝術Oracle
- Oracle效能診斷一例Oracle
- 優化Shared Pool Latch與Library Cache Latch競爭優化
- Oracle診斷事件列表(轉)Oracle事件
- Oracle效能診斷檢視總結Oracle
- Oracle效能最佳化之SQL最佳化(轉)OracleSQL
- latch 相關效能問題診斷: latch: row cache objects等待事件導致CPU負載高Object事件負載
- latch free 等待事件的診斷語句事件
- oracle之 redo過高診斷Oracle
- Oracle效能最佳化之LockContention(轉)Oracle
- 【轉】oracle診斷工具-RDA使用Oracle
- oracle診斷工具-RDA使用(轉)Oracle
- Oracle效能最佳化之應用最佳化(轉)Oracle
- 一次ORACLE IO效能診斷案例Oracle
- 某公司oracle 效能調優診斷案例Oracle
- Oracle SQLT 診斷SQL語句效能(3)OracleSQL
- Oracle SQLT 診斷SQL語句效能(2)OracleSQL
- Oracle SQLT 診斷SQL語句效能(1)OracleSQL
- Oracle效能問題診斷一例Oracle
- 基於等待事件的效能診斷(轉)事件
- ORACLE 如何診斷高水位爭用(enq: HW – contention)OracleENQ
- Oracle效能最佳化之Rollback(undo)Segment最佳化(轉)Oracle
- Oracle效能最佳化之提升block的效率(轉)OracleBloC
- ORACLE診斷案例Oracle
- Oracle故障診斷Oracle
- ORACLE診斷事件Oracle事件
- ORACLE 10G 等待介面診斷(轉)Oracle 10g
- oracle 效能診斷藝術優化一書到手Oracle優化
- oracle效能診斷例項-row migration and row chainOracleAI
- 在Oracle10g中診斷效能問題Oracle
- (轉):學習Oracle動態效能表-(11)-v$latch$ v$latch_childrenOracle
- 案例 - EBS SQL效能診斷SQL
- 等待事件效能診斷方法事件
- shared pool library cache latch 競爭優化辦法優化
- Oracle診斷事件列表Oracle事件