有A/B两张主从表,B从表里面对应A表的外键上有建了索引,事务1、2会同时查询、汇总B表里面的自身的部分数据,然后删除记录。
例如事务1查询、汇总B表里面的1~5笔记录,事务2查询、汇总B表里面的6~10笔记录,然后删除各自的这5笔数据。
但是在删除的时候,发生了死锁,当前锁模式为NS锁,请求X锁。
数据库版本:DB2 V9.7
由于特殊原因,关闭了CUR_COMMIT = DISABLE;
锁超时:15秒
死锁检测:10秒
环境变量设置:
DB2_SKIPINSERTED=ON
DB2_EVALUNCOMMITTED=ON
DB2_SKIPDELETED=ON
用DB2 V9.7的死锁监控,监控到的锁事件相关信息见附件SQL。
实在是想不通这个死锁是如何产生的,求教育。
附件:
LOCK_PARTICIPANT_ACTIVITIES.xlsx (98.92 KB)
收起