首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >僵局情况下,S的锁是从哪里来的?

僵局情况下,S的锁是从哪里来的?
EN

Database Administration用户
提问于 2015-03-05 18:17:42
回答 1查看 85关注 0票数 1

我遇到了下面的死锁场景。请参阅所附的对象定义和执行计划。计划是从发生这种死锁的系统中从缓存中提取出来的。

我理解所有这些数据告诉我的是什么,但我感到困惑的是,为什么spUpdateUserAccount存储过程对IX_Person_TaxPreparer_rowCreated采用S锁。此锁似乎没有必要,并且在spUpdateUserAccount的执行计划中没有引用spUpdateUserAccount。

..。

完整的问题,附附件,张贴在SQLPerformance上

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-03-05 18:56:08

我将在twitter上转发我的回复:

基于您发布的死锁XML,其中列出了调用spUpdateUserAccount的会话中3的trancount,该事务中的先前语句或批处理可能会将锁放在IX_Person_TaxPreparer_rowCreated上。

我假设这个锁是因为外键的约束而持有的。

锁在事务期间保持,因此第二条语句无法完成,直到第一条语句提交打开的事务为止。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/94517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档