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

利用 Performance Warehouse 歷史數據調優 DB2 UDB 伺服器

     編輯:DB2 教學

簡介

您是否需要詳細分析關鍵效能因子以控制 DB2 與應用程式效能?是否需要前瞻性診斷效能與可用性問題?遇到操作問題却無法用現有快照定因,渴望擁有歷史監控數據?IBM DB2 Performance Expert (DB2 PE) 提供線上監控、異常處理、短/長期歷史監控功能。本系列第 3 部分詳細闡述 Performance Warehouse (PWH),它是 DB2 PE 組件,用於長期保存歷史監控數據,並提供報表、查詢、經驗法則等分析工具,協助識別潛在效能問題、趨勢,以及評估配置變更效果。PWH 數據來源包含 DB2 快照數據、事件監控數據、配置數據。

Performance Warehouse 架構

短期監控適合即時問題診斷,但無法洞察長期趨勢或容量規劃。PWH 透過捕獲短期快照與配置數據並長期保存,彌補此缺口。必要時亦可保存 SQL 陳述式事件監視器數據。歷史數據在 DB2 PE 中僅保留數小時/天,存入 PWH 後可長期用於報表與趨勢分析。

PWH 可回答的關鍵問題

  • 哪些 SQL 陳述式消耗最多 CPU、排序與執行時間?
  • 執行頻率最高的 SQL 陳述式為何?
  • 非同步讀取比率與緩衝池命中率在尖峰/平常時段是否超過警告閾值?
  • 配置變更是否導致排序溢出等瓶頸?
  • 編目緩存與包緩存大小是否適配尖峰/平常負載?
  • 現有索引集下 SQL 執行是否正常?

PWH 組件概覽

圖 1 展示 PWH 由控制表、資料表組成,對每個受監控 DB2 實例獨立。資料表包含:

  • 緩衝池活動(含表空間、表資訊,基於快照)
  • 資料庫活動(基於快照)
  • 資料庫與資料庫管理器配置
  • SQL 活動(基於 SQL 陳述式事件監視器)

控制表儲存收集、載入、分析數據的定義。工作流引擎由收集載入流程與報表生成流程組成,可排程自動化執行(如每週一產生上週報表)。PWH 同時扮演資料倉庫角色,採用 ETL (Extract, Transform, Load) 流程:

  1. 抽取: 從短期歷史表讀取快照/配置數據;從事件監視器檔案讀取 SQL 活動數據。
  2. 轉換: 階段性匯總快照數據;將 SQL 活動數據轉為關聯格式。
  3. 載入: 寫入 PWH 資料表。

報表、預定義/自訂查詢、經驗法則協助深入分析。

Performance Warehouse 概覽

數據導入 PWH

短期歷史快照與配置數據 ETL

DB2 PE 依使用者指定間隔(預設 5 分鐘)定期快照系統活動,收集資料庫、緩衝池、表空間、表、配置統計。歷史數據儲存於效能資料庫,預設保留 50 小時(可調)。ETL 依設定間隔將短期數據遷移至 PWH 表,轉換階段進行匯總(最小匯總間隔 15 分鐘)。例如 5 分鐘收集一次,匯總為 15 分鐘,則每筆 PWH 數據對應 3 筆短期數據。

PWH 匯總方法

DB2 快照數據三類監視器元素處理方式不同:

  • 水位標記: 取期間最大/最小值。
  • 測量值: 計算平均值(隨活動增減)。
  • 計數器: 計算匯總間隔增量值(如死鎖數)。

配置數據非上述類型,屬資訊元素,僅當數值變更時遷移至 PWH。

包含快照與配置數據的 PWH 資料表

  • PWH.BUFFERPOOL - 緩衝池快照
  • PWH.TABLESPACE - 表空間快照
  • PWH.TABLE - 表快照
  • PWH.DATABASE - 資料庫快照
  • PWH.DBMCFG - 資料庫管理器配置
  • PWH.DBCFG - 資料庫配置

SQL 活動事件監視數據 ETL

從 Application Summary 面板啟動 SQL 活動追蹤(單一應用),或作為 PWH 流程排程(全資料庫/篩選應用)。DB2 PE 建立陳述式事件監視器,依設定時間運行後終止,將平面檔案數據載入 PWH 表並可選生成報表。

包含 SQL 活動數據的 PWH 資料表

  • PWH.EVM_HEADER - 事件監視器/資料庫/實例資訊
  • PWH.EVM_CONNECTION_HEADER - 各應用連接資訊
  • PWH.EVM_STMT_IDENTIFIER - 陳述式資訊(包、建立者、游標)
  • PWH.EVM_STMT_TEXTS - 陳述式文本
  • PWH.EVM_STMT_SUMMARY - 摘要資訊(準備、警告、錯誤、執行統計)
  • PWH.EVM_STMT_OPERATIONS - 陳述式操作

使用 PWH 流程與建立報表

流程由最多三步組成:收集報表數據 (CRD)、載入 PWH、建立報表。流程組織於流程組中,Public 組含範本,使用者可複製至自有組配置執行。圖 2 顯示流程畫面。

Performance Warehouse 流程

報表類型與配置參數

  • 緩衝池/資料庫活動報表: 僅報表步驟可用。參數:資料庫名、過濾條件(緩衝池/表空間/表名)、報表時間區間、DPF 分區號或 global。
  • SQL 活動報表: 三步驟皆可用。參數:資料庫名、過濾條件(應用 ID/名稱/授權 ID)、事件監視器運行時間、最大檔案長度、DPF 分區號。

資料庫活動報表

包含 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。靜態 SQL 亦同樣顯示。圖 4 示例展示超連結鑽取細節。

SQL 活動摘要報表 SQL 活動細節

使用 PWH 查詢分析數據

查詢為標準 SQL SELECT 陳述式,基於 PWH 表執行。可用預定義查詢或自行撰寫。查詢產生器提供欄位輔助功能。支援運行時變數替換。查詢組織於查詢組,Public 組含所有預定義查詢,修改前需複製至自有組。

預定義查詢分類

  • 問題查詢: 僅返回超過關鍵效能計數器閾值的行(如緩衝池命中率 < 90%)。名稱前綴:DB2 PM.Buffer pool、DB2 PM.DATABASE、DB2 PM.TABLE space。
  • 報表查詢: 返回 PWH 表各面向數據,可用於自訂報表。前綴:DB2 PM.Report。
  • 高命中率查詢: 操作儲存事件監視器數據的 PWH 表,返回高消耗 SQL(如排序時間最多)。前綴:DB2 PM.SQL Activity。

圖 5 顯示預定義查詢列表;圖 6 示例問題查詢結果(命中率 < 90% 的緩衝池及對應時間區間)。

PWH 查詢列表

查詢結果

實用自訂查詢範例

1. 查詢表空間使用的緩衝池

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

可結合緩衝池命中率等快照指標擴展,全面掌握表空間與緩衝池活動。

2. 關聯資料庫配置值與監視器元素隨時間變化

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 與統計表不同時,需加額外謂詞關聯。

3. 識別日誌使用趨勢

(原文未列出完整 SQL,但說明可透過 PWH 追蹤日誌空間使用變化趨勢。)

4. 比較平均應用連接數與緩衝池命中率

(原文未列出完整 SQL,但說明可分析並發負載對緩衝池效率的影響。)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved