您是否需要詳細分析關鍵效能因子以控制 DB2 與應用程式效能?是否需要前瞻性診斷效能與可用性問題?遇到操作問題却無法用現有快照定因,渴望擁有歷史監控數據?IBM DB2 Performance Expert (DB2 PE) 提供線上監控、異常處理、短/長期歷史監控功能。本系列第 3 部分詳細闡述 Performance Warehouse (PWH),它是 DB2 PE 組件,用於長期保存歷史監控數據,並提供報表、查詢、經驗法則等分析工具,協助識別潛在效能問題、趨勢,以及評估配置變更效果。PWH 數據來源包含 DB2 快照數據、事件監控數據、配置數據。
短期監控適合即時問題診斷,但無法洞察長期趨勢或容量規劃。PWH 透過捕獲短期快照與配置數據並長期保存,彌補此缺口。必要時亦可保存 SQL 陳述式事件監視器數據。歷史數據在 DB2 PE 中僅保留數小時/天,存入 PWH 後可長期用於報表與趨勢分析。
圖 1 展示 PWH 由控制表、資料表組成,對每個受監控 DB2 實例獨立。資料表包含:
控制表儲存收集、載入、分析數據的定義。工作流引擎由收集載入流程與報表生成流程組成,可排程自動化執行(如每週一產生上週報表)。PWH 同時扮演資料倉庫角色,採用 ETL (Extract, Transform, Load) 流程:
報表、預定義/自訂查詢、經驗法則協助深入分析。

DB2 PE 依使用者指定間隔(預設 5 分鐘)定期快照系統活動,收集資料庫、緩衝池、表空間、表、配置統計。歷史數據儲存於效能資料庫,預設保留 50 小時(可調)。ETL 依設定間隔將短期數據遷移至 PWH 表,轉換階段進行匯總(最小匯總間隔 15 分鐘)。例如 5 分鐘收集一次,匯總為 15 分鐘,則每筆 PWH 數據對應 3 筆短期數據。
DB2 快照數據三類監視器元素處理方式不同:
配置數據非上述類型,屬資訊元素,僅當數值變更時遷移至 PWH。
PWH.BUFFERPOOL - 緩衝池快照PWH.TABLESPACE - 表空間快照PWH.TABLE - 表快照PWH.DATABASE - 資料庫快照PWH.DBMCFG - 資料庫管理器配置PWH.DBCFG - 資料庫配置從 Application Summary 面板啟動 SQL 活動追蹤(單一應用),或作為 PWH 流程排程(全資料庫/篩選應用)。DB2 PE 建立陳述式事件監視器,依設定時間運行後終止,將平面檔案數據載入 PWH 表並可選生成報表。
PWH.EVM_HEADER - 事件監視器/資料庫/實例資訊PWH.EVM_CONNECTION_HEADER - 各應用連接資訊PWH.EVM_STMT_IDENTIFIER - 陳述式資訊(包、建立者、游標)PWH.EVM_STMT_TEXTS - 陳述式文本PWH.EVM_STMT_SUMMARY - 摘要資訊(準備、警告、錯誤、執行統計)PWH.EVM_STMT_OPERATIONS - 陳述式操作流程由最多三步組成:收集報表數據 (CRD)、載入 PWH、建立報表。流程組織於流程組中,Public 組含範本,使用者可複製至自有組配置執行。圖 2 顯示流程畫面。

包含 DB2 快照 API 監視器元素,隨時間收集匯總,適合趨勢分析與容量規劃。適用於測試環境記錄新/變更應用程式效能基準,跨測試週期比較,驗證預測。報表由 19 個報表區塊組成:Configuration、Overview、SQL Statistics、Row Statistics、Sorts、Hash Joins、Internal DB Statistics (Logging/Locking/Catalog Cache/Package Cache/Shared Workspace/Private Workspace)、Bufferpools/IO Statistics (Non-buffered I/O/Data/Index/Times/Extended Storage/Page Cleaner)、Applications。圖 3 示例。

格式類似資料庫活動報表,區塊包含:Buffer pool、Tablespace、Table。
基於 SQL 陳述式事件監視器數據。SQL 活動追蹤報表 依執行順序列出活動;SQL 活動摘要報表 包含每應用每陳述式摘要:總執行次數、總執行時間、總排序時間、警告/錯誤數、讀取/變更資料列數、總準備時間等,協助識別關鍵 SQL。靜態 SQL 亦同樣顯示。圖 4 示例展示超連結鑽取細節。

查詢為標準 SQL SELECT 陳述式,基於 PWH 表執行。可用預定義查詢或自行撰寫。查詢產生器提供欄位輔助功能。支援運行時變數替換。查詢組織於查詢組,Public 組含所有預定義查詢,修改前需複製至自有組。
DB2 PM.Buffer pool、DB2 PM.DATABASE、DB2 PM.TABLE space。DB2 PM.Report。DB2 PM.SQL Activity。圖 5 顯示預定義查詢列表;圖 6 示例問題查詢結果(命中率 < 90% 的緩衝池及對應時間區間)。


SELECT DISTINCT
T1.DB_NAME, T1.BP_NAME, T2.TABLESPACE_NAME
FROM PWH.BUFFERPOOL T1, PWH.TABLESPACE T2
WHERE T1.BUFFERPOOL_ID = T2.TABLESPACE_CUR_POOL_ID
AND T1.DB_NAME = T2.DB_NAME
AND T1.MEMBER_ID = T2.MEMBER_ID
AND T1.INTERVAL_TO = T2.INTERVAL_TO
AND T1.INTERVAL_FROM = T2.INTERVAL_FROM
可結合緩衝池命中率等快照指標擴展,全面掌握表空間與緩衝池活動。
SELECT
T1.INTERVAL_FROM AS DB_INTERVAL_FROM, T1.INTERVAL_TO as DB_INTERVAL_TO,
T2.INTERVAL_TO as DBCFG_INTERVAL_TO, T1.DB_NAME,
T1.TOTAL_SORT_TIME, T1.SORT_OVERFLOWS, T1.ACTIVE_SORTS,
T2.SORTHEAP as DBCFG_SORTHEAP
FROM PWH.DATABASE T1
LEFT OUTER JOIN PWH.DBCFG T2
ON T2.INTERVAL_TO < T1.INTERVAL_TO AND T2.INTERVAL_TO >= T1.INTERVAL_FROM
AND T1.DB_NAME = T2.DB_NAME
AND T1.MEMBER_ID = T2.MEMBER_ID
WHERE T2.DB_NAME = ':db_name'
AND DATE(T1.INTERVAL_TO) BETWEEN ':from_date' AND ':to_date'
ORDER BY T1.DB_NAME
此查詢示範如何將排序相關統計與 SORTHEAP 配置值關聯,評估配置調整效果。注意 PWH 配置表 INTERVAL_TO 與統計表不同時,需加額外謂詞關聯。
(原文未列出完整 SQL,但說明可透過 PWH 追蹤日誌空間使用變化趨勢。)
(原文未列出完整 SQL,但說明可分析並發負載對緩衝池效率的影響。)