db2 list applications show detail
db2 list applications for database <dbname> show detail
重點關注 Application Name(如 db2bp 為 CLP、java 為 JDBC/DB2CC)與 Application Id(本地顯示 LOCAL.user.time,遠端顯示十六進位 IP+用戶+時間),快速識別不必要的並發連線。
db2 get monitor switches
db2 update monitor switches using LOCK ON STATEMENT ON
建議長期開啟 LOCK(鎖等待/死鎖)與 STATEMENT(SQL 文本),視需要開啟 BUFFERPOOL、SORT、TABLE、UOW。
| 層級 | 指令 | 用途 |
|---|---|---|
| 資料庫管理器 | db2 get snapshot for dbm | 實例級資源、連線統計 |
| 資料庫 | db2 get snapshot for database on <dbname> | 緩衝區、日誌、鎖、排序等核心指標 |
| 應用/代理程式 | db2 get snapshot for application agentid <appl-handle> | 單一應用 SQL、鎖、等待細節 |
| 資料表 | db2 get snapshot for tables on <dbname> | 資料表讀寫行數、鎖升級狀況 |
| 鎖 | db2 get snapshot for locks on <dbname> | 當前所有鎖模式、持有者、等待者 |
| 動態 SQL | db2 get snapshot for dynamic sql on <dbname> | 高耗資源 SQL 文本與執行統計 |
事件監視器以非同步寫入檔案,適合生產環境長期蒐集。
CREATE EVENT MONITOR evm_deadlock
FOR DEADLOCKS, DEADLOCKS WITH DETAILS, STATEMENTS
WRITE TO FILE 'C:\temp\evm_log';
SET EVENT MONITOR evm_deadlock STATE 1;
db2evmon -path 'C:\temp\evm_log'
輸出包含死鎖參與者、鎖模式、完整 SQL 文本、隔離級別等,可直接導入分析工具或人工排查。
LOCK、STATEMENT 降低開銷。db2pd -locks、db2pd -agents 進行即時補充觀測。