查詢存取計畫 是決定 SQL 效能的關鍵。DB2 解釋工具 可視化呈現優化器選擇的操作序列、成本估算、引數與執行順序,是診斷效能問題、驗證調優成果的標準儀器。
db2exfmt 格式化報告 (可離線閱讀)db2look 或 RUNSTATS 輸出)db2exfmt 會自動整合REORG INDEX)RUNSTATS)REBIND)調優動作 (新增索引、建立 MQT、調整參數、收集統計) 後,立即擷取解釋輸出確認:
黃金法則:解釋輸出只能顯示「優化器認為」的成本,精確量化效能提升仍須基準測試。
| 工具/指令 | 用途 | 備註 |
|---|---|---|
| EXPLAIN PLAN FOR | 動態 SQL 產生解釋資料 | 需先建立解釋表 (EXPLAIN.DDL) |
| db2exfmt | 格式化解釋表/快照為可讀報告 | 最常用、支援快照自動整合 |
| Visual Explain (Data Studio/IBM Data Manager) | 圖形化存取計畫 | 適合快速瀏覽、教學 |
| db2look | 匯出 DDL、統計、配置參數 | 基線建立必備 |
| RUNSTATS / REORGCHK | 更新統計、檢查重組需求 | 調優前後必做 |
# 1. 建立解釋表 (僅首次)
db2 -tvf EXPLAIN.DDL
# 2. 擷取動態 SQL 計畫
db2 "SET CURRENT EXPLAIN MODE = EXPLAIN"
db2 "SELECT ... YOUR SQL ..."
db2 "SET CURRENT EXPLAIN MODE = NO"
# 3. 產生可讀報告
db2exfmt -d DBNAME -o query_plan.txt -1 -g TIC
# 4. 關鍵欄位關注重點
# - TOTAL COST / IO COST / CPU COST
# - OPERATOR TYPE (TBSCAN, IXSCAN, FETCH, JOIN, GRPBY, SORT)
# - ESTIMATED ROWS vs ACTUAL ROWS (需配合 EXPLAIN SNAPSHOT)
# - PREDICATE APPLY 位置 (SARGABLE?)
db2exfmt 文字報告量化比較。REBIND 後重新解釋。
建立「變更前基線 → 變更後比對 → 驗證修正」的標準化解釋分析流程,搭配 db2exfmt、db2look、RUNSTATS 三大工具,即可將 SQL 效能問題從「玄學」轉化為可量化、可重現的工程科學。