一般来说,查询后游标未关闭就插入/更新/删除,这么做并发是容易导致死锁的;需要先把查询游标关了。DB2查询也是有锁的,除非 ur查询,ur是意向锁,超级排他锁外无所谓DB2_SKIPINSERTED=ONDB2_EVALUNCOMMITTED=ONDB2_SKIPDELETED=ON开启了这几个参数。插入,查询,更新/删除,这么做是很容...
显示全部一般来说,查询后游标未关闭就插入/更新/删除,这么做并发是容易导致死锁的;需要先把查询游标关了。
DB2查询也是有锁的,除非 ur查询,ur是意向锁,超级排他锁外无所谓
DB2_SKIPINSERTED=ON
DB2_EVALUNCOMMITTED=ON
DB2_SKIPDELETED=ON
开启了这几个参数。插入,查询,更新/删除,这么做是很容易导致死锁的,就算是ur级别也一样。
插入的锁被持有,后面更新/删除会等待对方的插入锁释放。
可以试试,插入后commit,查询后关闭游标,然后再删除。
如果查询和更新的条件一致,也可以尝试把这几个参数关了,在查询时就先等待插入的锁,并发时就等待。
如果都是自己插入查询删除自己的,直接用session临时表吧,在自己的session里倒腾。
收起