2012-05-25 67 views
0

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

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

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

+0

经过进一步调查的连接只似乎被断开更新不查询怎么能这样呢? – icecurtain

回答

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/

+0

这帮助信息很好开始一些调查。 – icecurtain