从 SQL Server 2000 到 SQL Server 2008 的死锁错误

Cel*_*l-o 5 trigger sql-server-2008 deadlock transaction

将数据从 SQL Server 2000 迁移到 SQL Server 2008 后,当我在表中执行任何查找数据库中更多行的事务时,这给了我错误。

 Transaction (Process ID 59) was deadlocked on lock resources with
 another process and has been chosen as the deadlock victim. 
 Rerun the transaction.
Run Code Online (Sandbox Code Playgroud)

表上有 3 个触发器(插入、更新、删除)。我怎么解决这个问题?

San*_*ddy 2

升级到 SQL Server 2008 后,您是否运行了以下命令?

  1. DBCC更新USGAE
  2. 使用 FullScan 更新统计数据
  3. 重建所有索引

从 2000 到 SQL Server 2008,统计 blob 发生了显着变化,升级后上述步骤非常重要。我见过很多人遇到性能问题,但没有遇到死锁。如果您到目前为止还没有这样做,我会尝试执行上述所有操作,然后尝试重现该问题。

也就是说,在 2008 框上 SELECT @@VERSION 的结果是什么?您要更新一行还是几行?