IBM DB2 V9 引入了革命性的自動維護功能,涵蓋自動資料庫備份、自動統計資訊更新,以及在必要時自動重組表與索引。這項創新極大地簡化了資料庫管理員(DBA)的日常維護工作量,讓企業無需擔心備份時機、備份指令細節,即可確保資料庫定期、正確地完成備份。
自動維護模組主要包含三大核心功能:資料存取優化(自動 RUNSTATS)、資料碎片整理(自動 REORG)以及統計資訊概要分析。善用這些特性,能讓資料庫維護從繁瑣的手工作業轉向智慧化自動化。
高效率的資料存取與最佳工作負載效能,仰賴組織良好的表資料。隨著大量插入、更新、刪除操作,邏輯上連續的資料可能分散在不連續的物理資料頁面上,特別是插入操作產生的溢位記錄,會迫使資料庫管理員執行額外讀取操作。刪除大量資料列同樣會留下空洞。表重組操作能整理資料碎片、減少浪費空間、合併溢位記錄,並可依特定索引重新排序資料,大幅加快查詢速度。
DB2 透過 REORGCHK 公式評估已更新統計資訊的表,判斷是否需要重組。若需重組,系統會內部排程執行傳統重組(需應用程式暫停對該表的寫入存取)。管理員可透過三個資料庫配置參數控制此功能:
在分區資料庫環境中,僅需在目錄分區啟用上述參數,重組作業將自動在目標表所在的所有分區執行。
統計資訊概要檔記錄了 RUNSTATS 指令的選項組合(如表統計、索引統計、分佈統計),避免重複輸入指令參數。支援兩種註冊模式:
SET PROFILE:同時註冊概要檔並收集統計資訊SET PROFILE ONLY:僅註冊概要檔,不收集統計資訊後續執行 RUNSTATS ... USE PROFILE 即可套用已註冊的概要檔。
啟用 AUTO_STATS_PROF 參數後,DB2 會收集資料庫活動資訊並存入查詢回饋倉庫,據此自動生成統計資訊概要檔。搭配 AUTO_PROF_UPD 參數,可讓自動收集統計資訊功能依據自動生成的概要檔排程維護。此功能特別適合 OLAP 環境(大型複雜查詢、多謂詞、多表聯結分組),不適合 OLTP 環境,且在聯合環境、多分區 MPP 環境或啟用分區內平行性的環境中會被停用。
作者嘗試在啟用 FEDERATED=YES 的環境中開啟 AUTO_STATS_PROF 與 AUTO_PROF_UPD,遭遇 SQL0270N (Reason Code 75) 錯誤。查詢錯誤碼確認:多重資料庫分區、啟用 SMP 或聯合系統不支援自動統計資訊概要分析。
UPDATE DBM CFG USING FEDERATED NO → TERMINATE → FORCE APPLICATIONS ALL → DB2STOP → DB2STARTUPDATE DB CFG USING AUTO_STATS_PROF ON
UPDATE DB CFG USING AUTO_PROF_UPD ON
GET DB CFG 確認 AUTO_STATS_PROF=ON、AUTO_PROF_UPD=ON、AUTO_MAINT=ON、AUTO_TBL_MAINT=ON、AUTO_RUNSTATS=ONUPDATE DB CFG USING AUTO_REORG ON(前提是父層開關皆為 ON)透過控制中心右鍵選擇資料庫 →「配置自動維護」→ 第五頁籤「選擇要配置的維護活動」→ 勾選「整理表和索引資料碎片 (REORG)」的「自動化」欄位。進階設定包含兩個頁籤:
聯機索引重組允許寫入存取,在聯機維護視窗執行;脫機模式允許讀取存取,在脫機維護視窗執行。若不允許對表寫入/讀取,系統會依規則重試或調整執行模式。
DB2 V9 的自動維護功能將資料庫管理從被動應對轉向主動優化。正確理解參數依賴關係(AUTO_MAINT → AUTO_TBL_MAINT → AUTO_REORG)、環境限制(聯合/MPP 環境下的功能停用),並善用圖形化工具微調作用域與選項,能讓企業以最低人力成本維持資料庫最佳效能。