DB2 系統監視器包含兩類工具:
兩者數據存於監視器元素:計數器、水位標記、量規、信息元素、時間戳、時間元素。
| 開關 | 控制採集內容 | 配置參數 | 預設 |
|---|---|---|---|
| BUFFERPOOL | 緩衝池讀寫、命中率、異步 I/O | DFT_MON_BUFPOOL | OFF |
| LOCK | 鎖等待、升級、死鎖、鎖列表 | DFT_MON_LOCK | OFF |
| SORT | 排序堆使用、溢出、性能 | DFT_MON_SORT | OFF |
| STATEMENT | 動態/靜態 SQL 執行時間、行數、成本 | DFT_MON_STMT | OFF |
| TABLE | 表掃描、插入/更新/刪除、索引訪問 | DFT_MON_TABLE | OFF |
| TIMESTAMP | 所有時間戳元素 | DFT_MON_TIMESTAMP | ON |
| UOW | 工作單元完成時間、成本 | DFT_MON_UOW | OFF |
開關變更即時生效,但系統級開銷(OS 取時間戳、記憶體佔用)隨開啟項目增加。原則:只開啟調優所需開關。
GET MONITOR SWITCHES # 查看當前狀態
UPDATE MONITOR SWITCHES USING LOCK ON SORT ON # 實例級開啟(重啟後仍有效)
db2MonitorSwitches() API # 應用程式級動態控制
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 等
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 歸零所有計數器(不可選擇性重置單組)。替代方案:關閉再開啟開關、或斷開重連。