关于DB2 lock的问题,其实并不是特别的复杂,一般都会涉及到:1. lock wait2.lock escalation 3.dead lock4.Application performance&¶lellism例如解决锁等待相关的问题,可以这样:1.查看数据库的是否有大量的锁等待;db2 get get snapshot for database on sample | gre...
显示全部关于DB2 lock的问题,其实并不是特别的复杂,一般都会涉及到:
1. lock wait
2.lock escalation
3.dead lock
4.Application performance&¶lellism
例如解决锁等待相关的问题,可以这样:
1.查看数据库的是否有大量的锁等待;db2 get get snapshot for database on sample | grep (find) lock;
2.利用db2pd 进行锁的定位:db2pd -db sample -locks showlocks wait;
3. 找到持有改锁的事务:db2pd -d sample tansactions ;(识别标志:AppHandl,TranHdl);
4.然后:db2pd -agents (根据AppHandl,找到Agentid);
5.db2 get snapshot for application agentid xxxxx 定位SQL Statement;
6. 找到相关责任人(SQL 语句)后,考虑调整SQL语句,或者配置一些相关的参数进行性能调整.(DB2_SKIPINSERTED ET.)
类似的可以调整locklist,maxlocks,locktimeout 等常用参数;如果调整了locklist,maxlocks依然不能解决问题的,就要检查表是否产生了升级,事务是否提交等.
收起