死锁,与数据库的连接断开



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

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

有没有办法阻止连接断开?

根据定义,死锁意味着两个连接卡住,其中 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/

最新更新