latch: cache buffers chains

urgel_babay發表於2016-02-29

檢視等待事件的時候,幾乎每次都有 latch: cache buffers chains


    該等待事件的主要原因通常多個session重複訪問一個或多個資料塊,很大程度上和邏輯讀有關,所以要關注v$sqlbuffer_gets/executions很大的語句,
因數每一個邏輯讀需要一個
latch get操作及一個cpu操作,這樣的sql消耗cpu資源比較嚴重,這也是為什麼說常見的表現是CPU使用率較高的原因。
說的再直白一點,基本上可以確定是因為這個系統效能較差的
SQL引起的!

根據SQL_ID 可以找到具體的sql語句和真正的執行計劃




解決辦法:

1、最佳化nested loop join,如果有可能使用hash join代替nested loop join。也可以利用對熱塊索引進行hash分割槽,或者使用hash簇的方式減緩熱塊現象。

2、調整表的pctfree值,將資料儘可能的分佈到多個塊中

3、調整應用




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

相關文章