解釋資料收集完成後,如何視覺化分析?DB2 提供三種工具,各有適用場景。本文深度比較 db2expln、db2exfmt、Visual Explain,並提供選擇決策矩陣。
三大工具詳細比較
1. db2expln
- 資料來源: 系統目錄中的 Package(靜態 SQL 綁定結果)。
- 優點: 無需預先收集解釋資料,快速查看已部署應用的存取路徑;支援動態 SQL(無參數標記)。
- 缺點: 僅顯示最終選定計劃,無優化過程細節;無 CLI 應用支援;介面為文字模式。
- 適用: 快速檢查生產環境 Package 存取路徑、批次分析多個 Package。
2. db2exfmt
- 資料來源: 解釋表中的完整解釋資料/快照。
- 優點: 詳細文字報表,含運算子成本、述詞、資料流、物件、實例環境;支援 CLI/靜態/動態 SQL;可導向終端或 ASCII 檔案。
- 缺點: 文字介面,複雜計劃閱讀較費力;無圖形化。
- 適用: 深度分析單一/多條 SQL、調優前後對比、自動化報表產生。
3. Visual Explain
- 資料來源: 僅支援解釋快照。
- 優點: 圖形化存取路徑、索引使用標示、操作成本標註、統計資料檢視、調優前後對比模式。
- 缺點: 單一 SQL 分析,不適合批次;需 GUI 環境;不支援完整解釋資料。
- 適用: 單一關鍵 SQL 深度剖析、索引缺口識別、團隊溝通展示。
工具特徵對照表
| 特徵 | Visual Explain | db2exfmt | db2expln |
| 使用者介面 | 圖形化 | 文字 | 文字 |
| 快速粗略靜態 SQL 分析 | 否 | 否 | 是 |
| 靜態 SQL 支援 | 是 | 是 | 是 |
| 動態 SQL 支援 | 是 | 是 | 是 |
| CLI 應用支援 | 是 | 是 | 否 |
| 詳細 Optimizer 資訊 | 是 | 是 | 否 |
| 適合多條 SQL 分析 | 否 | 是 | 是 |
選擇決策指南
- 生產環境 Package 快速巡檢 →
db2expln(無需收集、即查即得)。
- 開發/測試階段深度調優 → 收集完整解釋資料 +
db2exfmt 產生詳細報表,或收集快照 + Visual Explain 圖形化分析。
- 關鍵 SQL 索引缺口識別 → Visual Explain 直觀顯示 Table Scan、建議索引欄位。
- 自動化效能基線建立 →
db2exfmt 文字報表易於解析、比對、存檔。
- 團隊溝通/文件化 → Visual Explain 圖形輸出最易理解。
最佳實務建議
- 開發階段:
SET CURRENT EXPLAIN MODE = YES; SET CURRENT EXPLAIN SNAPSHOT = YES; 同時收集兩類資料,彈性選擇工具。
- 生產環境:僅對特定 Session 開啟追蹤,避免系統級影響。
- 定期清理解釋表,避免
SYSTOOLS 模式膨脹影響效能。
- 統計資料更新後必須重新收集解釋資料,否則分析失真。