1. 程式人生 > >高階SQL優化(三) 常用優化工具 ——《12年資深DBA教你Oracle開發與優化——效能優化部分》

高階SQL優化(三) 常用優化工具 ——《12年資深DBA教你Oracle開發與優化——效能優化部分》

1.AUTOTRACE簡介     AUTOTRACE是SQL*Plus的一項功能,其作用是自動跟蹤SQL語句,為SQL 語句生成一個 執行計劃並且提供與 該語句的處理有關的統計資訊。 SQL*Plus AUTOTRACE 可以用來替代 SQL Trace 使用,AUTOTRACE 的好處是不必設定跟蹤檔案的格式,並且它將自動為 SQL 語句顯示執行計劃。AUTOTRACE與執行計劃的區別是AUTOTRACE 分析和執行語句;而EXPLAIN PLAN僅分析語句,而不負責執行語句。    AUTOTRACE在SQL*PLUS下執行,使用AUTOTRACE不會產生跟蹤檔案。 2.配置AUTOTRACE
  (1).確保表PLAN_TABLE已經建立,如果沒有則如下建立:      (2).確保角色plustrace已經建立,如果沒有則如下建立:   3.使用AUTOTRACE 4. AUTOTRACE設定命令
序號 命令 解釋
1 SET AUTOTRACE OFF 此為預設值,即關閉Autotrace
2 SET AUTOTRACE ON 產生結果集和解釋計劃並列出統計
3 SET AUTOTRACE ON EXPLAIN 顯示結果集和解釋計劃不顯示統計
4 SETAUTOTRACE TRACEONLY 顯示解釋計劃和統計,儘管執行該語句但將看不到結果集
5 SET AUTOTRACE TRACEONLY STATISTICS 只顯示統計
參見每個設定的現場舉例   5. AUTOTRACE STATISTICS含義
序號 列名 解釋
1 recursive call 遞迴呼叫SQL的個數;Oracle在執行這個SQL的時候,有時候會生成很多額外的SQL語句,這個就稱為遞迴呼叫
2 db block gets 從buffer cache中讀取的block的數量
3 consistent gets 從buffer cache中讀取的undo資料的block的數量
4 physical reads 從磁碟讀取的block的數量
5 redo size DML生成的redo的大小
6 sorts (memory) 在記憶體執行的排序量
7 sorts (disk) 在磁碟上執行的排序量,如果memory空間使用不足,是會使用disk的空間的
8 bytes sent via SQL*Net to client 利用sql*net傳入到client的位元組數;
9 bytes received via SQL*Net from client 利用sql*net傳出client的位元組數;