High Water Mark過高導致cache buffer chain等待嚴重
High Water Mark過高導致cache buffer chain等待嚴重
一、問題現象
資料庫wait event顯示latch free(cache buffer chains)等待嚴重,伺服器CPU使用率持續達100%,資料庫應用普遍出現效能問題。
資料庫wait event顯示latch free(cache buffer chains)等待嚴重,伺服器CPU使用率持續達100%,資料庫應用普遍出現效能問題。
二、原因分析
某分割槽表的其中一個分割槽只有4行記錄,但其data blocks數目卻與其他有著百萬行記錄的分割槽相當,資料高水位HWM(High Water Mark)較高(insert了大量資料,
後來又delete,導致HWM升高),導致每次訪問該分割槽時的buffer gets較高,約幾萬次buffer gets。
有一些sql語句在nest loop最裡層訪問到該分割槽,nest loop幾千次,多條sql併發,導致資料庫熱塊競爭嚴重:latch free(cache buffer chains) ,
同時因sql的buffer gets高成本導致CPU 使用率100%。
某分割槽表的其中一個分割槽只有4行記錄,但其data blocks數目卻與其他有著百萬行記錄的分割槽相當,資料高水位HWM(High Water Mark)較高(insert了大量資料,
後來又delete,導致HWM升高),導致每次訪問該分割槽時的buffer gets較高,約幾萬次buffer gets。
有一些sql語句在nest loop最裡層訪問到該分割槽,nest loop幾千次,多條sql併發,導致資料庫熱塊競爭嚴重:latch free(cache buffer chains) ,
同時因sql的buffer gets高成本導致CPU 使用率100%。
三、解決方法
(1)臨時緩解方法:在HWM問題解決之前,應用禁止問題sql再次執行,Kill當前running的問題sql程式。
(2)根本解決方法:降低分割槽的HWM,維護後sql執行時間從小時級下降到秒級。關於降低HWM的方法,
例如可以採用下面的步驟:
備份資料,truncate問題分割槽,恢復資料;需留意truncate分割槽動作會導致該分割槽表上的global index狀態變成unusable(local index狀態不受影響),
DBA還需要對global index進行rebuild,或者在truncate的同時指定update global indexes選項。如需保留統計資訊,可以先提前備份,操作完成後再將其匯入。
(2)根本解決方法:降低分割槽的HWM,維護後sql執行時間從小時級下降到秒級。關於降低HWM的方法,
例如可以採用下面的步驟:
備份資料,truncate問題分割槽,恢復資料;需留意truncate分割槽動作會導致該分割槽表上的global index狀態變成unusable(local index狀態不受影響),
DBA還需要對global index進行rebuild,或者在truncate的同時指定update global indexes選項。如需保留統計資訊,可以先提前備份,操作完成後再將其匯入。
Partly command examples:
alter table odsmiddata.mid_policy_info truncate partition part0;
alter index odsmiddata.mid_policy_info_pk tablespace odsmiddata_idx rebuild parallel 6;
alter index odsmiddata.mid_policy_info_pk noparallel;
alter table odsmiddata.mid_policy_info truncate partition part0;
alter index odsmiddata.mid_policy_info_pk tablespace odsmiddata_idx rebuild parallel 6;
alter index odsmiddata.mid_policy_info_pk noparallel;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22578826/viewspace-749300/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 等待模擬-cache buffer chainAI
- Cache Buffer Chain Latch等待事件AI事件
- cache buffer lru chain latch等待事件AI事件
- Oracle段高水位(HWM, high water mark)問題Oracle
- cache buffer chainAI
- 通過降低表的高水位(HWM: High Water Mark) ,解決一生產系統故障
- cr塊和latch buffer cache chainAI
- cache buffer chain latch只讀共享?AI
- buffer cache實驗5-latch:cache buffers chainAI
- latch free 中 cache buffer chain 的整理AI
- 等待事件_cache_buffers_lru_chain_latch事件AI
- 【eygle】Oracle 10g 之HIGH Water MARK 資料統計Oracle 10g
- cache buffer chain latch可以以只讀模式共享AI模式
- hang了,嚴重的row cache lock 等待事件--就因大sql文字事件SQL
- 【故障處理】序列cache值過小導致CPU利用率過高
- buffer cache與相關的latch等待事件事件
- latch 相關效能問題診斷: latch: row cache objects等待事件導致CPU負載高Object事件負載
- oracle實驗記錄(buffer_cache分析(3)cbc lru chain latch)OracleAI
- VXFS啟用非同步IO導致的嚴重問題非同步
- cache buffers lru chainAI
- 【Mysql】JDB2導致磁碟io使用率高 導致mysql延遲過高MySqlDB2
- 蘋果iOS 8再曝嚴重漏洞 可導致ios裝置無限重啟蘋果iOS
- 異常等待事件Resmgr:Cpu Quantum導致CPU利用率高事件
- cache buffers LRU chain latchAI
- latch free(cache buffers chain)AI
- Buffer Cache 原理
- Adobe Reader存在嚴重漏洞 或導致系統崩潰
- 嚴重 PHP 漏洞導致伺服器遭受遠端程式碼執行PHP伺服器
- cache buffers chains vs cache buffers lru chainAI
- oracle bug 6825287導致DX鎖等待Oracle
- MySQL Flush導致的等待問題MySql
- 系統存在嚴重的latch: undo global data等待
- 關於cache_buffer_lru_chain的疑問,知道的給小弟解答一下。AI
- IO之核心buffer----"buffer cache"
- enq: TX - allocate ITL entry等待過多導致全域性死鎖ENQ
- Buffer Cache Hit Ratio
- Oracle Buffer Cache原理Oracle
- Oracle database buffer cacheOracleDatabase