Sql-Server-2008

從 SQL Server 2000 到 SQL Server 2008 的死鎖錯誤

  • June 17, 2015

將數據從 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.

表上有 3 個觸發器(插入、更新、刪除)。我怎麼解決這個問題?

升級到 SQL Server 2008 後,您是否執行了以下命令?

  1. DBCC 更新USGAE
  2. 使用全掃描更新統計資訊
  3. 重建所有索引

統計資訊 blob 從 2000 到 SQL Server 2008 發生了顯著變化,升級後上述步驟非常重要。我見過許多人遇到性能問題,但沒有遇到死鎖。如果您到目前為止還沒有,我會嘗試執行上述所有操作,然後嘗試重現該問題。

也就是說,2008 框上的 SELECT @@VERSION 的結果是什麼?您是更新一行還是幾行?

引用自:https://dba.stackexchange.com/questions/2292