autotrace 是SQL*PLUS中有用的工具包。在SQL tuning中查看執行計畫經常使用到,下面是其命令中常用到的。
set autotrace off 不產生autotrace報告。此設定為預設設定,查詢按常規運行。
set autotrace on explain 查詢按照常規運行,autotrace 報告只顯示優化程式的執行路徑。
set autotrace on statistics 查詢按照常規執行,autotrace報告只顯示sql語句的執行統計資料。
set autotrace on 查詢執行發生,autotrace報告包括優化程式路徑和sql語句執行統計資料。
set autotrace traceonly 想set autotrace on 一樣,但禁止列印用戶的查詢輸出結果。通常針對客戶返回大結果集的查詢而言的,對於想1000行這樣大的輸出量的列印和螢幕滾動(花費的時間通常比實際執行此查詢本身還要長的操作),可以禁止該顯示,而不必等待期操作。
set autotrace traceonly statistics 只顯示運行統計資料。
set autotrace traceonly explain 只顯示查詢計畫
如果不想影響線上資料庫, 執行 :
set autotrace traceonly statistics;
或
set autotrace traceonly explain;
如何enable :
以sys user 執行以下scripts
SQL> @?/sqlplus/admin/plustrace.sql .
SQL> @?/rdbms/admin/utlxplan.sql . """--建立PLAN_TABLE"""
ex:
SQL> set autotrace traceonly statistics;
SQL> set autotrace traceonly explain;
在這邊的範例只有看到TABLE ACCESS FULL 的執行計畫,也因為此表格無索引, 查詢也無指定where 條件(select * from test.tab1 where A='111' ;)
所以不走index ,
其他關於執行計畫的部分,可參考以下資料
Oracle9i Database Performance Tuning Guide and Reference Release 2 (9.2)
沒有留言:
張貼留言