生產環境使用10053分析Oracle的執行計劃

seasonzone發表於2024-06-15

【問題現象】

在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

相關文章