【問題現象】
在SQL出現效能問題後,透過分析統計資訊、直方圖、SQL AWR、檢視執行計劃等,仍然找不出為什麼SQL要選擇差的執行計劃,就需要透過10053檢視這個SQL的執行計劃的更詳細的資訊。
【操作方法】
透過10053事件來檢視執行計劃和詳細的SQL解析過程,10053的trace檔案提供了Oracle如何選擇執行計劃的原因。
10053 是最常用的Oracle 最佳化器optimizer 跟蹤trace,10053 可以作為解析最佳化器為什麼選擇某個執行計劃的輔助工具。
--查詢SPID
SQL> select spid from v$process
where addr=(select paddr from v$session where sid=(select sid from v$mystat where rownum <=1));
SPID
------------------------------------------------
33651
--開啟對指定會話的跟蹤
sqlplus / as sysdba
--設定OS PID
SQL> oradebug setospid 33651
Oracle pid: 21, Unix process pid: 33651, image: oracle@dream (TNS V1-V3)
--不限制跟蹤檔案大小
SQL> oradebug unlimit;
Statement processed.
--開啟10053事件跟蹤
SQL> oradebug event 10053 trace name context forever,level 1
Statement processed.
--執行需要跟蹤的相關SQL
select * from myTestTable;
--關閉跟蹤
SQL> oradebug event 10053 trace name context off;
Statement processed.
--顯示trace檔案路徑
SQL> oradebug tracefile_name
/oracle/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_33651_10053.trc
分類: ORACLE
https://www.cnblogs.com/liulianzhen99/articles/17587246.html