我继承了一个 SQL Server 2005 数据库,该数据库每天出现 2-3 次死锁。
我已将其追踪到白天运行的计划作业,并使用触发器插入到表中。
触发器包含对另一个表的 10 次更新,这些更新的条件略有不同。死锁发生在触发器中。
当一个人提出申请并且工作正在运行时,就会发生死锁。应用程序插入到与预定作业相同的表中。

从跟踪来看,似乎发生在进程 1 获得键锁,进程 2 获得页锁,然后进程 1 将键锁升级为页锁并且进程 2 尝试获取键锁时发生的情况。
我添加了缺失的索引,这似乎有所帮助,但它仍在发生。我不是 DBA,因此对于解决此问题的方法的任何建议将不胜感激。
我添加了死锁 xml 的链接 - 这是我为复制问题所做的测试。