優化器依賴統計信息生成最優執行計劃,而 autotrace 能即時展示計劃與統計。本文從建立輔助表、權限授予到顯示模式切換,提供完整可落地的操作手冊。
-- 1. 執行官方腳本建立 plan_table $ cd $ORACLE_HOME/rdbms/admin $ sqlplus / as sysdba SQL> @utlxplan.sql -- 2. 創建公共同義詞供所有用戶使用 SQL> create public synonym plan_tables for plan_table; SQL> grant all on plan_tables to public;
$ cd $ORACLE_HOME/sqlplus/admin $ sqlplus / as sysdba SQL> @plustrce.sql SQL> grant plustrace to public;
| 命令 | 效果 | 適用場景 |
|---|---|---|
set autotrace off | 關閉顯示(預設) | 正式執行不需分析時 |
set autotrace explain | 僅顯示執行計劃 | 快速查看優化器決策 |
set autotrace traceonly | 不顯示查詢結果,只顯示計劃與統計 | 大數據集測試性能 |
set autotrace on | 顯示結果、計劃與統計 | 完整分析 |
DBMS_STATS.GATHER_TABLE_STATS / GATHER_SCHEMA_STATS 替代舊版 ANALYZE;METHOD_OPT => 'FOR ALL COLUMNS SIZE AUTO' 讓 Oracle 自動決定直方圖;DBA_TAB_STATISTICS.STALE_STATS 針對性收集過期統計;INCREMENTAL => TRUE 配合分區表大幅縮短收集窗口。