通過降低表的高水位(HWM: High Water Mark) ,解決一生產系統故障
昨天系統運維的同事接到電話,說全國各地多出反映代收貨款業務沒做,資料未生成。系統其它方面都正常。然後請我分析看看關於這一塊的資料庫是否正常。客戶一直在電話催著解決,專案經理也在頂著壓力催著。
通過分析資料庫,發現資料庫上一直有兩個和代收貨款有關的sql在執行,insert語句,一個是delete語句。將這個兩個語句capture出來分析,檢視其執行計劃,都很正常(抓出來的sql是含有繫結變數的)。想到可能由於繫結變數的原因,生成的執行計劃不準確,特意代進去幾個具體的值執行,發現執行時間都需要10秒左右,而這個sql的實時性要求非常高,需要在幾毫秒內處理完,否則就會有資料積壓,就會積壓越來越多,越來越慢,這兩個sql在系統中呼叫非常頻繁,一直在迴圈執行,而這個sql都是按照主鍵來操作的,理應在幾毫秒就可以完成。檢視涉及到的表的資料量,只有幾十行,即使select * from table_name也是很慢。因此這個應該是表的hwm很高導致的,因為這些表的delete,insert非常頻繁。
因此需要立刻降低表的hwm。在oracle 10g中,影響最小的降低hwm的辦法是收縮表:
alter table table_name shrink space;
(採用move操作需要重建索引,對生產系統影響有點大)。
操作完後,再執行上面的兩個sql,確實做到了幾毫秒執行完畢。
再檢視代收貨款相關表的資料,發現有些資料已經在處理了。過半個小時後,所有滯後的資料均已經處理完畢,客戶關心的問題得到解決!
另外,如果表上有fbi(基於函式的索引),是不能對錶進行shrink的。
相關連結:
http://blog.csdn.net/tianlesoftware/article/details/4707900
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12129601/viewspace-716021/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle段高水位(HWM, high water mark)問題Oracle
- High Water Mark過高導致cache buffer chain等待嚴重AI
- Oracle表段中的高水位線HWMOracle
- 深入瞭解oracle的高水位(HWM)Oracle
- Oracle 高水位(HWM)Oracle
- oracle的高水位線HWMOracle
- oracle的高水位線(HWM)Oracle
- ORACLE 高水位線(HWM)Oracle
- Oracle 高水位(HWM)標記Oracle
- 【eygle】Oracle 10g 之HIGH Water MARK 資料統計Oracle 10g
- delete與高水位線HWM回收delete
- Ooracle 高水位線(high water mask)在不同段管理模式下的推進Oracle模式
- Oracle 降低高水位線Oracle
- oracle 高水位線及如何有效的降低高水位線Oracle
- Oracle表段中高水位線HWMOracle
- 降低Oracle高水位線的方法Oracle
- Oracle之降低高水位線Oracle
- Oracle高水位線(HWM)及效能優化Oracle優化
- oracle11g表的高水位線hwm與dbms_space系列一Oracle
- Oracle案例10——HWM(高水位線)效能優化Oracle優化
- 各個Oracle 版本下如何調整高水位(HWM)Oracle
- 【實驗】關於HWM(高水位)的學習與測試
- ORACLE資料庫降低高水位線方法Oracle資料庫
- ORACLE高水位表的查詢方法Oracle
- 兩個系統故障解決薦
- Oracle 找出需要回收高水位的表Oracle
- oracle 高水位線詳解Oracle
- oracle表碎片以及整理(高水位線)Oracle
- 【TABLESPACE】怎麼去降低資料檔案的高水位呢(BLOCK_ID)BloC
- 一、oracle 高水位線詳解Oracle
- 報告:通過整合安全生態系統以降低複雜性
- oracle10g shrink space 降低HWMOracle
- undo表空間使用率過高解決
- Oracle高水位Oracle
- SCO UNIX系統故障特徵、分析及解決(轉)特徵
- oracle回收高水位Oracle
- Windows還原系統後分割槽故障解決方案Windows
- 大資料表的truncate,列刪除,shrink回收高水位大資料