Oracle9i 執行計劃(轉)

wdnmg發表於2011-02-23

以下命令用於Windows作業系統

一、使用autotrace

進入sqlplus

1.使用utxlplan指令碼建立表

sqlplus中執行命令

@?\rdbms\admin\utlxplan.sql

2.建立同義詞為了多個使用者可以共享一個plan_table 並授權給public

create public synonym plan_table for plan_table;

grant all on plan_table to public;

3.建立plustrace 角色

執行命令 @?\sqlplus\admin\plustrce.sql

4.將角色許可權授予public

grant plustrace to public;

使用以下命令改變跟蹤狀態

進入sqlplus時,autotrace項預設是不開啟的,以後使用set autotrace off 關閉狀態
 
set autotrace on
開啟狀態後,執行的sql語句可以檢視執行計劃和查詢資訊
 
set autotrace traceonly
此狀態執行sql語句只顯示執行計劃,不顯示查詢輸出

SQL> set autotrace on
SQL> set autotrace traceonly
SQL> select table_name from user_tables;

關於Autotrace幾個常用選項的說明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 報告,這是預設模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只顯示優化器執行路徑報告
SET AUTOTRACE ON STATISTICS -- 只顯示執行統計資訊
SET AUTOTRACE ON ----------------- 包含執行計劃和統計資訊
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不顯示查詢輸出


二、使用explain plan for檢視執行計劃:
通過鍵入explain plan for + [待分析sql文]執行解析;

其次輸入SELECT * FROM TABLE( DBMS_XPLAN.DISPLAY() );命令可檢視分析結果

三、使用sql_trace檢視

在pl/sql或者sqlplus中,開啟一個sql_window。
(1)先執行:alter session set sql_trace=true;
(2)再執行你那個返回結果不正確的SQL
(3)再執行:alter session set sql_trace=false;
(4)馬上登陸到機器上,到$ORACLE_BASE/admin/sid/udump目錄下。找到剛生成的.trc檔案(假設檔名是1234455.trc)。執行命令:tkprof 1234455.trc aa.txt。檢視aa.txt檔案。這個檔案裡面有執行計劃。看看執行計劃每一步返回的結果集記錄數是不是正確。

四、通過10053事件來檢視,這裡面可以查到一些關於SQL成本的詳細資訊

在pl/sql或者sqlplus中,開啟一個sql_window。
(1)先執行:Alter session set events’10053 trace name context forever[,level {1/2}]’;

(2)再執行你那個返回結果不正確的SQL
(3)再執行:Alter session set events’10053 trace name context off’;

(4)馬上登陸到10.1.4.10機器上,到$ORACLE_BASE/admin/sid/udump目錄下。找到剛生成的.trc檔案)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70109/viewspace-687803/,如需轉載,請註明出處,否則將追究法律責任。

相關文章