DB2中,可以用三种方法来提高并发度:
1.降低隔离级, 读操作不会因为锁冲突被拦
select .... with UR
2.或,改变加锁的时机,减少锁冲突(这样其行上的insert/update/delete操作不会锁住条件不同select操作)
db2set DB2_EVALUNCOMMITTED=ON
db2set DB2_SKIPDELETED=ON
db2set DB2_SKIPINSERTED=ON
3.或在where相关字段上加索引,减少锁占用
注解:
db2set DB2_EVALUNCOMMITTED=ON - 这个参数将在记录锁之前进行谓词检查,尽量减少锁的时间;
db2set DB2_SKIPINSERTED=ON - 这个参数将新insert且没有提交的数据跳过;例如,SELECT/UPDATE语句不会发现这条记录;
db2set DB2_SKIPDELETED=ON - 这个参数将新delete且没有提交的数据跳过;例如,SELECT/UPDATE语句不等待这条记录的提交,并且认为他已经被删除了。