死锁,删除了与数据库的连接

时间:2012-05-25 15:32:32

标签: sql sql-server

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

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

有没有办法阻止连接被删除?

1 个答案:

答案 0 :(得分: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/