当数据库中的表查询异常慢时,考虑可能是表锁定的原因
连接数据库服务器,查看锁定情况
- 用命令:
db2pd -db DB_NAME -locks show detail
- 用命令
db2 get snapshot for locks on DB_NAME
Application handle表示进程的标识号,该进程执行情况会详细的列出来
- 用SQL:
select * from sysibmadm.locks_held with ur
查看表锁定情况
发现锁定,找到AGENT_ID,然后force掉db2 "force application (AGENT_ID)"
提示该命令为异步的,可能不会立即生效,所以可能有点慢,比较着急的话,可以db2 force application all
或者重启数据库db2stop force
anddb2start