1.通過explain plan for獲取oracle sql語句執行計劃。
2.通過autotrace獲取oracle sql語句執行計劃。
set autotrace on
set autotrace traceonly
set autotrace on explain
set autotrace on statistics
3.通過sql_trace來獲取oracle sql語句執行計劃。
4.通過10046事件來獲取oracle sql語句執行計劃。
5.通過awr報告來獲取oracle sql語句執行計劃。
注意:第一種方法適合開發人員獲取sql 執行計劃來判斷sql語句性能,即可以通過開發工具(plsql developer、toad等)輕鬆獲取。但獲取來的執行計劃並不是完全正確。因爲它沒有正真執行以及它沒有考慮綁定變量問題。
第二種相當於是第一種的升級,它可以輕鬆設置只要執行計劃或者要執行計劃以及統計信息。其實它的後臺也是通過explain plan for來獲取執行計劃的。不過它只能在sqlplus下面執行獲取。
第三種是對sql語句的追蹤,追蹤的信息轉儲到udump目錄下的trace文件。可通過tkprof來格式化trace文件。
第四種是第三種的一個升級,10046事件追蹤可以獲得綁定變量信息以及等待事件信息(sql_trace則不能),爲我們分析sql語句性能提供更詳細參考信息。也可通過tkprof格式化trace文件。(10053事件則不可以用tkprof來格式化trace文件)。
第五種是全局考慮sql性能問題,可以通過awr報告中的sql_id來查相關sql的執行計劃。