Autotrace 用法總結

shuangoracle發表於2012-05-10
對一條SQL語句生成執行計劃,可以採用的方法有:使用explain plan或者sql Developer按F5或者採用AUTOTRACE。
其中AUTOTRACE是一項SQL*Plus功能,自動跟蹤為SQL語句生成一個執行計劃並且提供與該語句的處理有關的統計。
AUTOTRACE的好處是您不必設定跟蹤檔案的格式,並且它將自動為SQL語句顯示執行計劃。然而AUTOTRACE分析和執行
語句;而EXPLAIN PLAN僅分析語句。
一、使用前設定及 Autotrace 授權
1.任何以 SQL*PLUS 連線的 session 都可以用 Autotrace ,不過還是要做一些設定的,否則可能報錯。
報錯示例:
SQL> set autotrace on;
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report
該錯誤的的主要原因是當前使用者下沒有 PLAN_TABLE 這張表及相應的 PLUSTRACE 角色許可權。

2.通過以下方法可以把Autotrace的許可權授予Everyone,如果你需要限制Autotrace許可權,可以把對public的授權改為對特定user的授權。
C:\Documents and Settings\zhaoss> sqlplus / as sysdba
SQL> @?\rdbms\admin\utlxplan    --建立 PLAN_TABLE表
SQL> create public synonym plan_table for plan_table;   --建立同義詞
SQL> grant all on plan_table to public ;
SQL> @?\sqlplus\admin\plustrce --建立角色併為角色賦許可權
SQL> drop role plustrace;
SQL> create role plustrace;
SQL> grant select on v_$sesstat to plustrace;
SQL> grant select on v_$statname to plustrace;
SQL> grant select on v_$session to plustrace;
SQL> grant plustrace to dba with admin option;
SQL> set echo off

DBA使用者首先被授予了plustrace 角色,然後我們可以把 plustrace 授予 public ;這樣所有使用者都將擁有 plustrace 角色的許可權.
SQL> grant plustrace to public ;

二、set autotrace語法及選項的說明

1.用法:SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
OPTION說明
SET AUTOTRACE OFF           此為預設值,即關閉Autotrace
SET AUTOTRACE ON            同時輸出執行結果以及統計資訊和執行計劃資訊。
SET AUTOTRACE TRACEONLY     不顯示命令的執行結果,顯示執行計劃和統計資訊,但在traceonly的後面仍然可以追加explain或者
statistics,和set autotrace on [explain|statistics]很像,但是不顯示執行結果。
SET AUTOTRACE ON EXPLAIN    只顯示執行結果和執行計劃,不顯示統計資訊。
SET AUTOTRACE ON STATISTICS 只顯示執行結果和統計資訊,不顯示執行計劃。

2.AUTOTRACE Statistics 常用列解釋
db block gets        從buffer cache中讀取的block的數量
consistent gets      從buffer cache中讀取的undo資料的block的數量
physical reads       從磁碟讀取的block的數量
redo size            DML 生成的redo的大小
sorts (memory)       在記憶體執行的排序量
sorts (disk)         在磁碟上執行的排序量

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