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

DB2 性能監控實戰(一):快照監視器詳解與最佳實踐

     編輯:DB2 教學

監控體系雙支柱

DB2 系統監視器包含兩類工具:

  • 快照監視器:某時間點狀態「照片」,適合定期採樣觀察趨勢、識別潛在問題域
  • 事件監視器:指定事件發生時記錄(如死鎖、語句完成),適合捕捉瞬態現象、審計追蹤

兩者數據存於監視器元素:計數器、水位標記、量規、信息元素、時間戳、時間元素。

快照監視器開關:按需採集,控制開銷

開關控制採集內容配置參數預設
BUFFERPOOL緩衝池讀寫、命中率、異步 I/ODFT_MON_BUFPOOLOFF
LOCK鎖等待、升級、死鎖、鎖列表DFT_MON_LOCKOFF
SORT排序堆使用、溢出、性能DFT_MON_SORTOFF
STATEMENT動態/靜態 SQL 執行時間、行數、成本DFT_MON_STMTOFF
TABLE表掃描、插入/更新/刪除、索引訪問DFT_MON_TABLEOFF
TIMESTAMP所有時間戳元素DFT_MON_TIMESTAMPON
UOW工作單元完成時間、成本DFT_MON_UOWOFF

開關變更即時生效,但系統級開銷(OS 取時間戳、記憶體佔用)隨開啟項目增加。原則:只開啟調優所需開關。

查看與修改開關

GET MONITOR SWITCHES                    # 查看當前狀態
UPDATE MONITOR SWITCHES USING LOCK ON SORT ON  # 實例級開啟(重啟後仍有效)
db2MonitorSwitches() API                # 應用程式級動態控制

獲取快照:CLP、API 與 SQL 表函數

CLP 命令

GET SNAPSHOT FOR ALL DATABASES                # 實例+所有庫
GET SNAPSHOT FOR DATABASE ON           # 單庫
GET SNAPSHOT FOR LOCKS ON              # 鎖快照
GET SNAPSHOT FOR APPLICATIONS ON       # 應用快照
... 亦支援 BUFFERPOOLS, TABLESPACES, TABLES, DYNAMIC SQL 等

SQL 表函數 (V8.1+)

20 個函數對應不同快照類型,如 SNAPSHOT_LOCK、SNAPSHOT_DYN_SQL、SNAPSHOT_BP。語法:

SELECT * FROM TABLE(SNAPSHOT_LOCK(CAST(NULL AS CHAR), -1)) AS LOCK_INFO
-- NULL 表示當前連接庫,-1 當前分區,-2 所有分區

優勢:SQL 聯接過濾、嵌入報表、可移植、封裝複雜邏輯於存儲過程。

重置計數器

計數器從開關開啟/連接建立起累積。RESET MONITOR ALL 或 RESET MONITOR FOR DATABASE 歸零所有計數器(不可選擇性重置單組)。替代方案:關閉再開啟開關、或斷開重連。

快照 vs 事件監視器:選型指南

  • 需定期基線、趨勢分析、即時狀態 → 快照
  • 需捕捉死鎖、長查詢、連接失敗、特定事件細節 → 事件監視器
  • 生產環境建議:快照定時採樣(如 5 分鐘)+ 事件監視器常駐(死鎖、閾值超時)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved