首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自2个存储过程的2个查询之间的死锁

来自2个存储过程的2个查询之间的死锁
EN

Stack Overflow用户
提问于 2017-08-17 03:51:42
回答 1查看 256关注 0票数 1

我有一个奇怪的死锁问题,一直困扰着我。场景如下:

根据这张照片,第二个存储过程无法更新该锦标赛号码的数据,直到它第一次被插入到表中。在这种情况下,它怎么可能死锁,我如何可能重现它并避免它?

谢谢。

第二个屏幕截图:

EN

回答 1

Stack Overflow用户

发布于 2017-08-17 04:39:22

请参阅pre-amble的主要问题的评论。这里的问题是两个表(AB)的顺序不同,所以它是这样发生的:

  1. SP1完成并释放id n1。
  2. SP2获取id n1并锁定表A,并以新编号开始并锁定表A。然后尝试锁定表B,但SP2成功锁定。
  3. SP2现在尝试锁定表A,但SP1成功锁定。

死锁

注释:这基本上就是每个死锁发生的原因,只是围绕它的一些复杂的混乱。这一切都与您锁定和释放表的顺序有关。如果所有内容都以相同的顺序锁定和释放,则永远不会出现死锁。

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

https://stackoverflow.com/questions/45721897

复制
相关文章

相似问题

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