SQL Server 2000-调试死锁
时间:2020-03-05 18:50:14 来源:igfitidea点击:
我正在寻找有关如何调试和解决SQL Server 2000数据库中的死锁问题的建议。我已经建议我使用跟踪标志1024和3605,发现这些标志给我以下内容:
1024该跟踪标志返回参与死锁的锁的类型以及受影响的当前命令。
3605此跟踪标志将跟踪输出发送到错误日志。
仍需要发现特定的存储过程,表和索引,因此目标是使用这些跟踪标志来实现。然后,从那里我将更好地了解需要调整哪些索引,锁定查询的调整提示以及潜在的sproc错误。
在追逐这一切到常见问题上还有其他建议或者愉快的结局战争故事吗?
解决方案
回答
一旦我们知道所涉及的sql语句,代码分析肯定会有所帮助。一些经验法则是检查行的访问顺序,并检查用于SQL语句的隔离级别。探查器跟踪可以提供很多帮助。
在大多数情况下,这是因为读取器试图获取由写入器专门锁定的资源的共享锁。
回答
这是有关死锁故障排除的圣经:http://blogs.msdn.com/bartd/archive/2006/09/09/Deadlock-Troubleshooting_2C00_-Part-1.aspx
回答
用于分析死锁的非常有用的脚本:http://www.sommarskog.se/sqlutil/aba_lockinfo.html