DB2 性能調優領域流傳著許多「經驗法則」,這些看似合理的慣例往往在特定場景下成為性能殺手。本文梳理 20 個最常見的調優迷思,揭示其背後的技術真相,幫助 DBA 與開發者建立科學的調優決策框架。
真相:物理設計應盡量貼近邏輯結構,但為性能優化而做出的物理變更(分區、索引、物化視圖等)不應受邏輯設計束縛。物理層服務於效能,邏輯層服務於語義,二者分離才是成熟架構的標誌。
真相:僅在記憶體極度受限(<10,000 個 4K 頁)且無人工調優資源時才可考慮。最佳實踐:除系統目錄外,嚴禁將使用者物件放入 BP0。依據存取模式、頁面大小、業務優先級規劃專用緩衝池,才能發揮記憶體投資效益。
真相:工作檔案因排序、雜湊連接、物化視圖等操作產生大量隨機 I/O,隨機比例可達 45%,典型範圍 3%-10%。規劃臨時表空間容量與磁碟配置時,必須考慮隨機 I/O 特性。
真相:視負載特性而定。唯讀/少更新表放行尾可減少 CPU 開銷;高頻更新表放行尾反而導致行遷移、碎片激增,甚至壓縮表更不適用。原則:高更新率表關鍵欄位前置,低更新率表可後置。
真相:偽碼邏輯與高效執行路徑常背道而馳。OLTP 交易中,為減少鎖持有時間、利用索引順序、避免不必要連接,物理實現常需大幅偏離邏輯流程。效能優先於代碼美感。
真相:恰恰相反。SQL 是集合運算語言,擅長批量資料處理。最大陷阱是將 SQL 退化為「逐行 I/O 處理器」(游標迴圈、單行提取)。善用 SQL 集合特性、窗口函數、CTE,往往能將應用層百行代碼壓縮為單一高效查詢。
真相:RI 非編輯驗證捷徑。僅在真實父子業務關係(訂單-明細、主檔-異動檔)中強制一致性時使用。代碼表查詢頻高、異動極少,RI 開銷(鎖、日誌、檢查)得不償失,應用層快取驗證更優。
真相:索引數量應由查詢負載決定。唯讀/少寫系統可建數十索引支援多維查詢;高寫系統需嚴格評估 UID 開銷。核心指標:查詢受益總和 > 維護成本總和。
真相:NPI 確實增加管理複雜度(重組、備份、效用程式限制),但對於非分區鍵的高頻查詢、唯一性約束、跨分區連接,NPI 是不可替代的存取路徑。關鍵在於權衡,而非禁用。
真相:分區解決的是「管理維護窗口」(載入、清除、備份、重組)與「分區剪枝」查詢加速,而非單純因資料量大。超過 60 億列的非分區表在適當索引下仍可高效運行。分區決策應基於維運需求與查詢模式,非資料量閾值。
真相:預設值面向通用場景,版本間頻繁變更。關鍵參數(如 CURRENTDATA、LOCKLIST、PCKCACHESZ)必須依據負載測試調整。盲目信任預設值是性能隱患溫床。
真相:單一否定謂詞確可能導致表空間掃描,但複合條件中適度否定往往助優化器縮小結果集。關鍵在於統計資訊完整度與索引覆蓋率,而非教條式禁止。EXPLAIN 才是判準。
真相:EXPLAIN 缺失關鍵資訊:查詢塊執行順序、一/二階段謂詞劃分、塊級執行耗時、實際 I/O 與 CPU 消耗。它僅導出計劃表資料,需結合監控快照、事件監視器、Visual Explain 多維分析,單憑 EXPLAIN 決策極危險。
真相:適度分頁(擴充儲存)反而透過淘汰冷計劃、釋放記憶體提升整體吞吐。過大 EDM Pool 導致頻繁內部結構重建、鎖競爭、實存壓力。目標是「穩定命中率」,而非「零分頁」。
真相:雖然現代 SAN/ESS 控制器緩存大幅弱化 Extent 影響,但分配元數據管理、空間搜尋、平行 I/O 啟動仍存在額外開銷。大 Extent 減少分配頻率,小 Extent 提高空間利用率,需依據表增長模式權衡。
真相:關聯式劃分(垂直/水平分解、正規化延伸)在 BI、MDM、多租戶架構中大量應用。單一程式中多次引用不同劃分視圖,是實現資料隔離、平行載入、多維分析的核心技術。
真相:Package/Plan 架構設計初衷是模組化、版本控制、權限隔離。強行合併導致:綁定耗時激增、套件相依地獄、單點失效風險、無法獨立回滾。現代實踐:按應用模組、生命週期、安全域劃分 Plan/Package 集合。
真相:UR 透過犧牲一致性換取極致並發(無 S 鎖、無鎖等待),是報表查詢、統計分析、非關鍵查閱的「銀彈」。適用範圍遠超認知:只要業務可容忍髒讀,UR 即為首選隔離級別。
真相:鎖等待時間才是核心指標。大量短時鎖等待雖不產生死鎖/超時,卻嚴重侵蝕回應時間與吞吐量。被動統計(死鎖計數)掩蓋主動病灶(鎖等待積累)。必須部署鎖事件監視器、定期分析 LOCK_WAITS、LOCK_WAIT_TIME 指標。
真相:壓縮換取 CPU 換 I/O,在 CPU 瓶頸、高更新率、小行長、隨機存取場景下反而降級。每張表必須實測 COMPRESSION RATIO、CPU DELTA、ELAPSED TIME DELTA,高層決策而非預設開啟。
這 20 個迷思的共同根源是「以偏概全、忽視上下文」。真正的調優專家,不背誦規則,而是建立:負載特徵畫像 → 假設驗證循環 → 指標驅動決策 → 變更影響追蹤 的科學方法論。DB2 提供完整的觀測工具鏈(EXPLAIN、Monitor、Event Monitor、db2pd、WLM),用好工具,讓數據說話。