我正在寻找有关如何调试和解决 SQL Server 2000 数据库中的死锁问题的建议。有人建议我使用跟踪标志 1024 和 3605,我发现它们可以提供以下信息:

1024 - 此跟踪标志返回参与死锁的锁的类型以及受影响的当前命令。

3605 - 此跟踪标志将跟踪输出发送到错误日志。

仍然需要发现特定的存储过程、表和索引,因此目标是使用这些跟踪标志来执行此操作。然后从那里我将更好地了解哪些索引需要调整、调整查询的锁定提示以及需要修复的潜在存储过程错误。

对于将这一切归咎于共同问题,还有其他建议或幸福结局的战争故事吗?

有帮助吗?

其他提示

对于分析死锁非常有用的脚本: http://www.sommarskog.se/sqlutil/aba_lockinfo.html

一旦了解了所涉及的sql语句,代码分析肯定会有所帮助。一些经验规则包括检查访问行的顺序以及检查用于 SQL 语句的隔离级别。分析器跟踪可以提供很大帮助。

大多数时候,这是因为读取器试图获取由写入器独占锁定的资源的共享锁。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top