星期三, 11月 30, 2011

Oracle SQL 執行計畫 : set autotrace 的Syntax 語法

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)

沒有留言:

LinkWithin-相關文件

Related Posts Plugin for WordPress, Blogger...