首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 表統計資訊收集與重組診斷:RUNSTATS、REORGCHK 實務手冊

     編輯:DB2 教學

三大核心工具

  • RUNSTATS:收集表/索引統計資訊(列數、分佈、叢集比等),優化器依此生成存取路徑。
  • REORGCHK:依統計資訊公式判斷表/索引是否需重組。
  • REORG:物理重組表/索引,回收空間、恢復叢集順序。

何時必須 RUNSTATS

  1. 建立新索引後(V8.2+ 可 CREATE INDEX ... COLLECT STATISTICS 一步到位)
  2. REORG 完成後(高水位、頁面位置已變)
  3. 資料量變化超過 10%-20%(含大量 INSERT/DELETE/UPDATE)
  4. 執行 REDISTRIBUTE DATABASE PARTITION GROUP 後(DPF 環境)

RUNSTATS 完整語法

RUNSTATS ON TABLE DB2INST1.STAFF
  WITH DISTRIBUTION AND DETAILED INDEXES ALL;
-- DISTRIBUTION:收集列值分佈(量化統計)
-- DETAILED INDEXES ALL:所有索引叢集因子、頁面密度等

大表可用 TABLESAMPLE SYSTEM (20) 抽樣 20%,前提是資料分佈均勻。

REORGCHK 診斷模式

模式用途
UPDATE STATISTICS先 RUNSTATS 再診斷,最準確
CURRENT STATISTICS直接用現有統計診斷,快但可能過期
-- 檢查所有使用者表
REORGCHK UPDATE STATISTICS ON TABLE USER;
-- 檢查系統表
REORGCHK CURRENT STATISTICS ON TABLE SYSTEM;
-- 檢查指定表
REORGCHK UPDATE STATISTICS ON TABLE SCHEMA.TAB1;

輸出解讀關鍵欄位

  • F1:表頁面密度(>70% 佳)
  • F2:索引叢集比(>80% 佳)
  • F3:索引頁面密度
  • F4-F8:索引層級、葉頁數等
  • 輸出末尾 * 標記表示建議 REORG

自動化維護建議

  • 關閉自動維護(AUTO_MAINT OFF),改用排程作業:
    REORG → RUNSTATS → REBIND 三步走
  • 快速變化表(如電信月結匯總表)設 ALTER TABLE ... VOLATILE CARDINALITY,強制優化器偏好索引掃描
  • DPF 環境在 REDISTRIBUTE 後務必全庫 RUNSTATS
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved