【发布时间】:2018-11-16 05:56:59
【问题描述】:
我们正在使用 Amazon RDS 进行数据库托管。最近我们偶尔会看到死锁。我们尝试使用@@LOCK_TIMEOUT 解决它,但后来发现它仅适用于会话而不是数据库级别。
我找到了这个链接
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2012/ms175463(v=sql.110)
这表示您可以在数据库级别设置查询等待并设置到期时间。但是有一段说不推荐
谁能指导我在数据库级别设置锁定超时以避免死锁。如果可以从代码中实现某些东西,那也是可行的。 我们使用实体框架 4
仅供参考:我们检查了分析器,没有查询问题导致死锁可能并发。
【问题讨论】:
-
“我们已经检查了分析器,没有导致死锁的查询问题” - 好吧,显然这是不正确的!
-
@MitchWheat 我对数据库的了解有限,所以如果我所做的不正确,我深表歉意。我正在关注互联网上的几篇文章。我们在一页上遇到了大多数死锁。我试图弄清楚该页面上是否有任何更新/插入,因为从 UI 来看它只是一个搜索页面(所以我的假设是只看到选择语句)。在分析器中,我看到了很少的更新查询 - 所以我删除了它们,因为我认为现在这个页面上的所有线程只会执行 select 语句,由于共享锁,这会很好,但是,我们仍然看到死锁,我不知道为什么。
标签: sql-server database database-deadlocks