我遇到了下面的死锁场景。请参阅所附的对象定义和执行计划。计划是从发生这种死锁的系统中从缓存中提取出来的。
我理解所有这些数据告诉我的是什么,但我感到困惑的是,为什么spUpdateUserAccount存储过程对IX_Person_TaxPreparer_rowCreated采用S锁。此锁似乎没有必要,并且在spUpdateUserAccount的执行计划中没有引用spUpdateUserAccount。
..。
发布于 2015-03-05 18:56:08
我将在twitter上转发我的回复:
基于您发布的死锁XML,其中列出了调用spUpdateUserAccount的会话中3的trancount,该事务中的先前语句或批处理可能会将锁放在IX_Person_TaxPreparer_rowCreated上。
我假设这个锁是因为外键的约束而持有的。
锁在事务期间保持,因此第二条语句无法完成,直到第一条语句提交打开的事务为止。
https://dba.stackexchange.com/questions/94517
复制相似问题