Answers:
在SQL Server中,有一个单独的线程定期(默认为5秒,如果刚刚检测到死锁,则间隔更短)检查任何周期的等待列表。即,它标识线程正在等待的资源,然后找到该资源的所有者,然后递归查找该线程又在等待哪个资源,从而标识正在等待彼此的资源。
如果发现死锁,则使用以下算法选择杀死受害者:
您可以在此处找到有关SQL Server死锁检测的更多信息:http
:
//msdn.microsoft.com/zh-cn/library/ms178104.aspx
事务所有者/应用程序开发人员负责最小化死锁发生的风险,并为此做他们应该: