0

我有一个连接到 SQL 服务器以运行一些插入/更新的应用程序。我们遇到了死锁,但我注意到除了报告死锁之外,与数据库的连接被断开,客户端必须重新连接。

这是正常的吗?即使这不是正常行为,SQL 服务器是否可能不仅决定我的客户端将成为死锁受害者,而且还终止连接?

有没有办法阻止连接被丢弃?

4

1 回答 1

1

根据定义,死锁意味着两个连接被卡住,其中 SPID 1 锁定了 SPID 2 需要的东西,而 SPID 2 锁定了 SPID 1 需要的东西。双方都无法完成交易,因为他们需要对方锁定的东西。在这种情况下,服务器将选择一个受害者 SPID 并杀死它,以便另一个可以完成其事务。

阻止它的唯一方法是首先弄清楚为什么会发生死锁。您可以运行跟踪以监控死锁并将与死锁相关的信息捕获到图表中,然后在 SSMS 中查看图表。

此处提供更多信息:http ://www.simple-talk.com/sql/learn-sql-server/how-to-track-down-deadlocks-using-sql-server-2005-profiler/

于 2012-05-25T15:39:52.247 回答