在 DB2 上测量 INSERT、UPDATE 和 DELETE 命令的性能

Rob*_*res 5 performance db2 insert jdbc iseries

我有一个带有日常事务表的 DB2 数据库,每天在一天结束时将其清除为历史记录表。

我通过 java-JDBC INSERT 命令将行插入到这个表中,它们通常需要不到一秒钟的时间来完成,但有时(我仍然不确定是什么模式)它可能需要一分钟才能完成 INSERT 命令,因为我没有在 JDBC 驱动程序上配置超时,它等待命令完成然后继续。

这些 INSERT 命令每天执行数千次,但这只会发生在其中每天大约 5 或 10 次。该表有一些索引和一个附加在 AFTER INSERT 事件上的触发器。

有什么工具或技术可以用来衡量在我的 INSERT 命令上执行什么需要这么长时间?我想知道它是索引,触发器还是出于任何原因,查询本身。

小智 -2

我猜这是一个锁定问题。

虽然这样的插入需要很长时间,但请使用下面的管理视图。HLD_CURRENT_STMT_TEXT 列显示阻塞语句(导致插入花费这么长时间的原因):

db2 select * from SYSIBMADM.MON_LOCKWAITS
Run Code Online (Sandbox Code Playgroud)