不論是做為開發DBA還是維護DBA,總是或多或少地遇到SQL執行效率或者說SQL調優問題,查看執行計劃是必須的。一般我們可以用3種方法查看:
一、explain plan for
舉例就足以說明其用法
| 以下為引用的內容: sys@ORCL>explainplanfor |
二、利用TKPROF工具
TKPROF是一個用于分析oracle跟蹤文件并且產生一個更加清晰合理的輸出結果的可執行工具。如果一個系統的執行效率比較低,一個比較好的方法是跟蹤用戶的會話并且使用TKPROF工具的排序功能格式化輸出,從而找出有問題的SQL語句。
TKPROF命令后面的選項及輸出文件各個列的含義在這里不做詳細的介紹。 google一下就會有很多資料。
下面簡單描述一下TKPROF工具的使用步驟:
1、在session級別設置sql_trace=true
sys@ORCL>altersessionsetsql_trace=true;
Sessionaltered.
如果要在pl/sql中對session級別設置true,可以使用dbms_system這個包:
sys@ORCL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
2、指定一下生成的trace文件的名字,便于查找:
sys@ORCL>altersessionsettracefile_identifier='yourname';
3、執行SQL語句。
4、利用TKPROF工具格式化輸出的trace 文件:
[oracle@q1test01~] $tkprof/oracle/admin/orcl/udump/orcl_ora_10266_yourname.trc/oracle/yourname.txtexplain=user/pwdaggregate=yessys=nowaits=yessort=fchela
5、查看生成的文件再設置sql_trace=false:
sys@ORCL>altersessionsetsql_trace=false;
三、set autotrace on
此種方法最常用,關于如何設置sql*plus的autotrace這里也不做詳細介紹,因為google上面資料確實太多了。有心的朋友可以去找找,保證有一大堆適合你的資料。
舉個例子,這種方法簡單易懂:
| 以下為引用的內容: ctoc@ORCL>setautotraceon |
新聞熱點
疑難解答