我对死锁的理解是 - 两个进程试图争夺相同的资源 - 通常是两个进程试图“写入”同一行数据。如果一个进程正在执行的是读取数据 - 而另一个进程正在更新数据,那么资源争用又如何?然而,在我们设置为默认事务级别“ReadCommitted”的数据库中,我们发现了几个死锁异常。 ReadComited definitin - 已被修改(但尚未提交)的数据无法读取。这很好 - 但是如果SQL Server遇到这种“脏读”发生时会抛出死锁异常? 任何人都有这种情况下的真实世界的经验?我发现了一篇博客帖子(由stackoverflow开发人员,不低于:)声称这可能是真实的。readcommitted隔离级别是否会导致死锁(Sql Server)?
谢谢
那么你正在描述两个更新事务。在这种情况下,陷入僵局是有道理的。我的问题是 - 其中一个交易只是一个READ - 没有更新。另一个正在写入正在读取的相同记录。这怎么可能导致死锁? – user2736158
除了我的头顶之外,这不应该陷入僵局,但如果您通过更多关于交易正在进行的细节的详细信息来编辑问题,我们可能会发现它的底部。 – acfrancis