【问题标题】:Common deadlocks on stored procedure with no index没有索引的存储过程的常见死锁
【发布时间】:2014-09-11 13:01:13
【问题描述】:

我正在调查生产 SQL Server 2008 R2 机器上的一些死锁,这些死锁似乎都与同一个存储过程有关。

过程非常简单。它更新表格行上的一列,并使用标识列 (ID) 找到该行。

奇怪的是,聚集索引甚至没有设置为标识列,并且该列也没有非聚集索引。我查看了执行计划,它说它正在执行聚集索引扫描。

这可能是导致死锁的原因吗?如果是这样,有人会介意解释原因吗?它会获取页面锁吗?查看 MSDN 文档,它说 U 锁应该防止常见的死锁。

【问题讨论】:

    标签: sql-server sql-server-2008 indexing deadlock


    【解决方案1】:

    这将解释这种死锁以及如何纠正它:

    http://www.intertech.com/Blog/sql-server-deadlocks-caused-by-clustered-index-scan/

    你是对的,这是由于聚集索引扫描。您只需在身份 (ID) 列上放置一个非聚集索引,就可以解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 2018-01-02
      • 2011-10-22
      • 1970-01-01
      相关资源
      最近更新 更多