我有一个应用程序连接到SQL服务器以运行一些插入/更新。我们遇到了死锁问题,但我注意到,除了报告死锁之外,与数据库的连接断开,客户端必须重新连接。死锁,连接到数据库丢失
这是正常的吗?即使这不是正常的行为,SQL服务器是否有可能决定我的客户端将成为死锁受害者,但它也终止了连接?
有没有办法阻止连接被丢弃?
我有一个应用程序连接到SQL服务器以运行一些插入/更新。我们遇到了死锁问题,但我注意到,除了报告死锁之外,与数据库的连接断开,客户端必须重新连接。死锁,连接到数据库丢失
这是正常的吗?即使这不是正常的行为,SQL服务器是否有可能决定我的客户端将成为死锁受害者,但它也终止了连接?
有没有办法阻止连接被丢弃?
根据定义,死锁意味着两个连接被卡住,其中SPID 1锁定了SPID 2所需的某些内容,而SPID 2锁定了该SPID 1所需的锁定。既不能完成他们的交易,因为他们需要另一个锁定的东西。在这种情况下,服务器将选择受害者SPID并杀死它,以便另一个可以完成其事务。
停止它的唯一方法是找出为什么死锁发生在第一位。您可以运行轨迹来监控死锁并将与其相关的信息捕获到图表中,然后在SSMS中查看图表。
这帮助信息很好开始一些调查。 – icecurtain
经过进一步调查的连接只似乎被断开更新不查询怎么能这样呢? – icecurtain