並行索引建立
- 原理:將基礎表邏輯分割為多個資料段,各平行進程獨立建立段索引鍵值,最後合併為完整 B+ 樹。
- 效益:隨 CPU 核心數線性縮短建索引時間(圖 1 示意),極大表或災難復原重建索引時效果顯著。
- 啟用:DB2 自動根據
INTRA_PARALLEL、DFT_DEGREE、可用 CPU 決定是否並行。
並行索引維護
- 傳統串行:單一資料異動觸發多索引依序維護,總耗時 = Σ(單索引維護時間)。
- 並行模式:同一異動同時傳播至多索引,總耗時 ≈ max(單索引維護時間)。
- 觸發條件:單次陳述式影響 ≥ 8 列(block insert)且目標表定義 ≥ 2 個索引。
- 典型場景:批次更新、資料倉庫大量載入(LOAD/INSERT)。
效能實證(圖 2)
多索引表大量載入時,並行維護可將載入時間壓縮至原本 1/2 ~ 1/3。
DBA 決策建議
若載入筆數超過現有表 20%,建議:
1. 先 DROP INDEX 全部索引
2. 執行載入
3. 再用並行 CREATE INDEX 重建
此策略通常比並行維護更快。