enq: SQ - contention 等待事件處理辦法
故障描寫:
2014-3-24
RAC資料庫,應用系統執行異常,登入不進
資料庫資訊檢視:
後臺CPU飆升厲害,資源使用過大。發現兩個節點鎖等待超過1100,並且還在不斷增長
解決辦法:
部分外來程式的kill,鎖等待消除。
分析報告:
我們可以透過分析故障前後的資料庫執行狀態來分析問題,比如:
故障時的資料庫狀態如下:
故障處理後的資料庫狀態:
故障發生時,p_pub_user_online_curd在54分鐘被執行了83229次,相當於每秒26次;
故障處理後,p_pub_user_online_curd在 70分鐘執行了54562次,相當於每秒13次。
透過比較可以看到,故障時的系統負載比非故障時提高了一倍。
因為p_pub_user_online_curd(:1, :2, :3)儲存過程,涉及到序列SQ_MENULOG和SQ_PUBLOGS的存取,由於序列的cache預設為20,所以在高併發的情況下,會導致enq:SQ-contention,大量的序列等待導致伺服器cpu飆高。這個從AWR報告中也有體現:
序列衝突引起的等待時間佔用了資料庫90%以上的CPU時間。
解決措施
1、 降低儲存過程p_pub_user_online_curd呼叫的頻率;
2、 將SQ_MENULOG和SQ_PUBLOGS的快取從20調整1000,執行語句如下:
alter sequence SQ_MENULOG cache 1000;
alter sequence SQ_PUBLOGS cache 1000;來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-1128506/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20220518]enq FU - contention等待事件.txtENQ事件
- Oracle等待事件之enq: TM – contentionOracle事件ENQ
- oracle等待事件之enq: CF – contentionOracle事件ENQ
- 等待事件enq: TX - row lock contention事件ENQ
- 故障排除 | enq:TX - index contention等待事件ENQIndex事件
- 【故障處理】佇列等待之enq: US - contention案例佇列ENQ
- 故障處理】佇列等待之enq: US - contention案例佇列ENQ
- oracle 11.2.0.4 rac叢集等待事件enq: TM - contentionOracle事件ENQ
- [20200120]oracle wait event "enq: SQ – contention" and DBA_DB_LINK_SOURCES.txtOracleAIENQ
- Oracle優化案例-系統切換引起的enq: SQ - contention(二十八)Oracle優化ENQ
- enq: TX - index contention基礎理論ENQIndex
- enq: TX - allocate ITL entry等待事件分析ENQ事件
- enq: TX - row lock contentionENQ
- 關於enq: TX - allocate ITL entry等待事件ENQ事件
- log file sync等待事件處理思路事件
- 常見佇列等待事件處理思路佇列事件
- 奇異的enq: TX - row lock contentionENQ
- 常見的wait等待事件及處理(zt)AI事件
- 效能問題,AWR High Event enq: US - contentionENQ
- Oracle Enqueues Wait Events 三 enq: TX - row lock contentionOracleENQAI
- enq: TX - index contention故障修復一例ENQIndex
- RAC中的enq: TS等待ENQ
- 【ASK_ORACLE】Linux從6升級到7導致Oracle產生大量Log file sync等待事件處理辦法OracleLinux事件
- ORACLE 如何診斷高水位爭用(enq: HW – contention)OracleENQ
- PowerShell的異常處理辦法
- 事件處理事件
- oracle密碼過期處理辦法Oracle密碼
- Solidity事件,等待事件Solid事件
- 【問題處理】MySQL忘記root密碼的處理辦法MySql密碼
- JavaSwing 事件處理Java事件
- vue事件處理Vue事件
- Flutter | 事件處理Flutter事件
- JavaScript事件處理JavaScript事件
- React事件處理React事件
- Jenkins臨時空間不足處理辦法Jenkins
- 磁碟IO過高時的處理辦法
- 【TUNE_ORACLE】等待事件之等待事件類別Oracle事件
- react之事件處理React事件
- enq: TM - contention解決之道——外來鍵無索引導致鎖爭用ENQ索引