ORACLE之autotrace使用

SQLPLUS的AutoTrace是分析SQL的執行計劃,執行效率的一個非常簡單方便的工具,在絕大多數情況下,也是非常有用的工具。利用AutoTrace工具提供的SQL執行計劃和執行狀態可以爲我們優化SQL的時候提供優化的依據,以及優化效果的明顯的對比效果。 
用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]

舉例:
SET AUTOT[RACE] OFF 停止AutoTrace
SET AUTOT[RACE] ON 開啓AutoTrace,顯示AUTOTRACE信息和SQL執行結果
SET AUTOT[RACE] TRACEONLY 開啓AutoTrace,僅顯示AUTOTRACE信息
SET AUTOT[RACE] ON EXPLAIN 開啓AutoTrace,僅顯示AUTOTRACE的EXPLAIN信息
SET AUTOT[RACE] ON STATISTICS開啓AutoTrace,僅顯示AUTOTRACE的STATISTICS信息

結果解釋
physical reads 物理讀——執行SQL的過程中,從硬盤上讀取的數據塊個數
redo size      重做數——執行SQL的過程中,產生的重做日誌的大小
bytes set via sql*net to client  通過sql*net發送給客戶端的字節數
bytes received via sql*net from client  通過sql*net接受客戶端的字節數
sorts(memory)  在內存中發生的排序
sorts(disk)    不能在內存中發生的排序,需要硬盤來協助
rows processed 結果的記錄數

    AutoTrace進行優化的注意事項

1. 可以通過設置timing來得到執行SQL所用的時間,但不能僅把這個時間來當作SQL執行效率的唯一量度。這個時間會包括進行AUTOTRACE的一些時間消耗,所以這個時間並不僅僅是SQL執行的時間。這個時間會與SQL執行時間有一定的誤差,而在SQL比較簡單的時候尤爲明顯。

2. 判斷SQL效率高低應該通過執行SQL執行狀態裏面的邏輯讀的數量
     邏輯讀 =(db block gets+ consistent gets)
總結


AutoTrace是ORACLE中優化工具中最基本的工具,雖然功能比較有限,但足以滿足我們日常工作的需要。

 

   在Oracle9i中需要運行$ORACLE_HOME/RDBMS/ADMIN/utlxplan.sql腳本生成plan_table表;
   在Oracle10g中PLAN_TABLE不再需要創建,Oracle缺省增加了一個字典表PLAN_TABLE$,然後基於PLAN_TABLE$創建公用同義詞供用戶使用

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

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/seven_tt/archive/2008/11/29/3409141.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章