小编Woo*_*Hoo的帖子

触发器上的锁定升级问题

我继承了一个 SQL Server 2005 数据库,该数据库每天出现 2-3 次死锁。

我已将其追踪到白天运行的计划作业,并使用触发器插入到表中。

触发器包含对另一个表的 10 次更新,这些更新的条件略有不同。死锁发生在触发器中。

当一个人提出申请并且工作正在运行时,就会发生死锁。应用程序插入到与预定作业相同的表中。

在此处输入图片说明

从跟踪来看,似乎发生在进程 1 获得键锁,进程 2 获得页锁,然后进程 1 将键锁升级为页锁并且进程 2 尝试获取键锁时发生的情况。

我添加了缺失的索引,这似乎有所帮助,但它仍在发生。我不是 DBA,因此对于解决此问题的方法的任何建议将不胜感激。

我添加了死锁 xml 的链接 - 这是我为复制问题所做的测试。

死锁xml

sql-server-2005 sql-server deadlock

6
推荐指数
1
解决办法
4475
查看次数

标签 统计

deadlock ×1

sql-server ×1

sql-server-2005 ×1