獲取執行計劃之Autotrace

如初發表於2021-04-03

Autotrace 簡介

AUTOTRACE是一項SQL*Plus功能,自動跟蹤為SQL語句生成一個執行計劃並且提供與該語句的處理有關的統計。
AUTOTRACE的好處是您不必設定跟蹤檔案的格式,並且它將自動為SQL語句顯示執行計劃。

Autotrace 選項說明

命令 輸出內容 簡寫 是否真實執行
SET AUTOTRACE OFF 預設模式,只顯示SQL執行結果 SET AUTOT OFF
SET AUTOTRACE ON 顯示SQL結果、執行路徑和資源消耗 SET AUTOT ON
SET AUTOTRACE TRACEONLY 顯示SQL結果數量、執行路徑和資源消耗 SET AUTOT TRACE
SET AUTOTRACE TRACEONLY EXPLAN 只顯示SQL執行路徑 SET AUTOT TRACE EXP Select語句沒有,DML會被執行
SET AUTOTRACE TRACEONLY STATISTICS 只顯示資源消耗 SET AUTOT TRACE STAT

統計資訊

統計資訊

統計資訊 解釋
recursive calls 產生的遞迴sql呼叫的條數
Db block gets 從buffer cache中讀取的block的數量
consistent gets 從buffer cache中讀取的undo資料的block的數量
physical reads 從磁碟讀取的block的數量
redo size DML生成的redo的大小
bytes sent via SQL*Net to client 資料庫伺服器通過SQL*Net向查詢客戶端傳送的查詢結果位元組數
bytes received via SQL*Net from client 通過SQL*Net接受的來自客戶端的資料位元組數
SQL*Net roundtrips to/from client 伺服器和客戶端來回往返通訊的Oracle Net messages條數
sorts (memory) 在記憶體執行的排序量
sorts (disk) 在磁碟上執行的排序量
rows processed 處理的資料的行數

Autotrace 優缺點

  • 優點
    1. 可以輸出執行時的相關統計資訊
    2. 有多種模式可供選擇
  • 缺點
    1. 必須要等SQL語句執行完,才出結果
    2. 無法看到表被訪問了多少次
    3. 當存在繫結變數時執行計劃可能不準
      部落格園分享碼

相關文章