首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

精準定位 ORA-1652 臨時表空間不足的問題 SQL

     編輯:Oracle 資料庫相關知識

四種定位方法對比

方法局限性
1. EVENT 1652 TRACE僅捕獲未來錯誤,可能影響性能
2. V$SQL 排序 DIRECT_WRITES無執行時間戳,問題 SQL 可能已 aged out
3. AWR/Statspack 物理讀排序讀寫不一定是臨時表空間,低頻高耗 SQL 易漏報
4. AWR 視圖直查 (10g+ 推薦)可按快照時間窗、直接寫入量精準定位

Oracle 10g 最佳查詢

SELECT DISTINCT TO_CHAR(SUBSTR(b.sql_text,1,4000))
FROM sys.WRH$_SQLTEXT b
WHERE b.sql_id IN (
SELECT sql_id FROM (
SELECT a.sql_id
FROM sys.WRH$_SQLSTAT a
WHERE a.parsing_schema_name NOT IN ('SYS')
AND a.executions_total > 0
AND a.direct_writes_total > 0
AND a.snap_id IN (
SELECT snap_id FROM sys.WRM$_SNAPSHOT
WHERE TO_DATE('2008:08:20 17:20:08','yyyy:mm:dd hh24:mi:ss')
BETWEEN begin_interval_time AND end_interval_time
)
ORDER BY a.direct_writes_total / a.executions_total DESC
) WHERE rownum <= 10
);

結果首條若非 INSERT /*+ APPEND */ 類批量操作,極大概率即為罪魁禍首。9i 可用 Statspack 視圖類似查詢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved