alert日誌中的一條ora警告資訊的分析
從alert日誌裡面看到的
Fri Jul 12 09:08:23 ICT 2013
ORA-1652: unable to extend temp segment by 128 in tablespace TEMP
查詢temp_usage,發現目前使用的只有goldengate的10多個session,佔用的自用很少,查詢現在的temp usage已經恢復正常了。
SQL> select TABLESPACE_NAME,TOTAL_BLOCKS,USED_BLOCKS,FREE_BLOCKS from v$sort_segment;
TABLESPACE_NAME TOTAL_BLOCKS USED_BLOCKS FREE_BLOCKS
------------------------------- ------------ ----------- -----------
TEMP 1023872 7936 1015936
匯出awr報告,資料庫整體負載很小。top sql裡面看到的sql貌似都加了Hint,是被最佳化過的。
(awr報告時1小時一生成,可能有很多資訊都不準確)
沒辦法,最後查ASH,精確到那一分鐘,得到了以下的資訊,
Service |
Module |
% Activity |
Action |
% Action |
XXXX01 |
TOAD 9.6.1.1 |
83.08 |
UNNAMED |
83.08 |
|
JDBC Thin Client |
13.85 |
UNNAMED |
13.85 |
並且發現下面的sql耗費了大量的資源,
Top SQL Statements
SQL ID |
Planhash |
% Activity |
Event |
% Event |
SQL Text |
|
3702571469 |
83.08 |
CPU + Wait for CPU |
83.08 |
SELECT /*+ leading (ar1_charge... |
|
1042878405 |
9.23 |
CPU + Wait for CPU |
9.23 |
SELECT MT.SHORT_DESC, MO.ENTIT... |
|
3257149028 |
1.54 |
CPU + Wait for CPU |
1.54 |
SELECT AR_BALANCE FROM AR1_ACC.. |
猛一看,這個sql應用了大量的hint,細細一看,是一個很有問題的sql
關聯了好幾個大表,但是沒有關聯。
SQL details:
SQL Id |
SQL Text |
7v8g1ffh5mwz7 |
SELECT /*+ leading (xxxxx1 xxxx2 xxx3) use_nl (xxxxx1 xxxx2 xxx3) index (xxxxx1 xxxx2 _ix) index (xxxx2 xxxx2 _pk) */ xxxxx1 .CHARGE_ID, xxxxx2.debit_id, xxxx2.invoice_id, xxxx1.partition_id, xxxx1.period_key, ROW_NUMBER () OVER (ORDER BY xxxx2.DEBIT_ID DESC) RN FROM xxxx1, xxxx2, xxx3 WHERE xxxx1.ACCOUNT_ID = 10000027 |
最後馬上和team裡面確認了下,是有一個人執行的。
然後為了阻止隱患,為郵件給關聯的team,對於sql的最佳化問題一點那個要最佳化轉發到dba team。
看似一個很小的問題,可能包含著錯誤的操作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-766192/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- alert日誌中的兩種ORA錯誤分析
- 由一條日誌警告所做的調優分析
- alert日誌中出現ash size的警告
- Oracle 警告日誌 (alert log) 中包含哪些內容 ?Oracle
- 警告日誌檔案alert_.log
- 用外部表的方式查詢alert日誌檔案中ora-錯誤資訊
- 【alert】使用SYS.DBMS_SYSTEM.KSDWRT向Oracle實現向警告日誌中寫入資訊Oracle
- ORA-03113 和ora-01041 的警告日誌
- oracle alert日誌Oracle
- 一個用python寫的自動監控alert日誌告警資訊的小程式Python
- oracle 11g的警告日誌Oracle
- oracle 中 alert 報警日誌過大的處理方法Oracle
- 一個備庫中ORA錯誤資訊的分析
- 11g的alert日誌路徑
- 歸檔oracle alert日誌Oracle
- 使用sql查alert日誌SQL
- 有條件分析oracle日誌Oracle
- ALERT日誌中常見監聽相關報錯之一:ORA-609錯誤的排查
- controlfile的extend也會記錄在alert日誌中
- ORACLE 告警日誌alert過大的處理Oracle
- 【原創】用外部表的方式查詢當天資料庫alert日誌檔案中當天所有的ora-錯誤資訊資料庫
- 資料庫日誌中一條"異常"資訊所包含的細節資料庫
- Data guard 中 alert 日誌報錯 "FAL archive failed"HiveAI
- 刪除oracle 11g的警告日誌和監聽日誌Oracle
- oracle alert日誌每天截斷truncate_alert.shOracle
- Oracel 12c Alert日誌中的Creating new log segment
- 使用Oracle的外部表查詢警告日誌Oracle
- oracle日誌分析從列表中移去一個日誌檔案Oracle
- 一條日誌訊息的現代生活
- 資料庫使用者不能登入 alert日誌報ORA-04031故障分析處理資料庫
- 用外部表實現Alert日誌的檢視
- 【alert】每週自動備份alert日誌檔案
- 11.2版本alert日誌中記錄了pfile或者spfile的全路徑
- Oracle之外部表警告日誌Oracle
- oracle alert日誌亂碼處理Oracle
- 熟練使用alert.log日誌
- 【ADRCI】使用ADRCI (ADR Command Interpreter) 工具檢視Oracle alert警告日誌Oracle
- 日誌分析-apache日誌分析Apache