事務是資料庫邏輯工作單元(ACID),對應緊密關聯的用戶操作(如存款、轉帳)。事務執行時間直接影響用戶體驗。DB2 提供豐富配置參數與 SQL 語句優化工具(Explain、Visual Explain),但缺乏原生事務級效能分析工具(事務執行時間、各 SQL 耗時、空閒時間、鎖等待)。本文提出結合事件監視器與快照監視器的分析方法。
DB2 事務由首條 SQL 隱式啟動,以 COMMIT/ROLLBACK 結束。執行過程中應用程式狀態在以下切換:
若某類事務效能差,需區分耗時在 SQL 執行、應用邏輯、或鎖等待,對症調優。
CREATE EVENT MONITOR ... FOR STATEMENTS WRITE TO FILE,啟動,實驗結束導出文本(db2evmon)。記錄含:Appl Handle/ID/Seq、Operation、Start/Stop Time、SQL Text 等。DFT_MON_* 參數,實驗期間排程執行 GET SNAPSHOT FOR APPLICATIONS 記錄狀態(UOW Executing/Waiting/Lock Wait)與時間戳。Appl ID + Appl Seq Number 唯一標識事務(Seq 隨 COMMIT/ROLLBACK 遞增),將交叉的多事務事件重組為獨立事務實例。事務效能分析粒度介於 SQL 語句與資料庫參數之間。利用 DB2 內建監視工具與資料關聯分析,可獲得可落地的調優洞察。典型 OLTP 系統中,前端操作一對一對應後端事務,提升事務效能 = 提升用戶體驗。