Deadlock -Fehler von SQL Server 2000 bis SQL Server 2008
-
16-10-2019 - |
Frage
Nachdem ich Daten von SQL Server 2000 auf SQL Server 2008 migriert hat, gibt ich bei einer Transaktion in der Tabelle ein Fehler.
Transaction (Process ID 59) was deadlocked on lock resources with
another process and has been chosen as the deadlock victim.
Rerun the transaction.
Auf der Tabelle befinden sich 3 Auslöser (einfügen, aktualisieren, löschen). Wie kann ich dieses Problem lösen?
Lösung
Haben Sie nach dem Upgrade auf SQL Server 2008 das unten ausgeführt?
- DBCC UPDATEUSGAE
- Aktualisieren Sie Statistiken mit FullScan
- Alle Indizes wieder aufbauen
Der Statistik -Blob wird von 2000 in SQL Server 2008 erheblich geändert, und die oben genannten Schritte sind nach dem Upgrade sehr wichtig. Ich habe viele PPL auf Leistungsprobleme begegnet, aber keine Deadlocks. Ich würde versuchen, all das oben genannte zu tun, wenn Sie nicht so weit nicht versuchen, das Problem danach zu reproduzieren.
Was sind die Ergebnisse von Select @@ Version im Feld 2008? Aktualisieren Sie eine Zeile oder mehrere Zeilen?
Andere Tipps
ich vermuten dass dies mit den Optimierern in den verschiedenen Versionen zusammenhängen kann Sperren eskalation anders. Können Sie nachsehen? Lock:Escalation
Veranstaltungen?
Wenn Sie Profiler ausführen und alle Deadlock -Diagramme aufnehmen, können Sie genau herausfinden, auf welchen Tischen die Deadlocks auftreten, einschließlich Seiten. Das sollte dazu beitragen, es einzugrenzen.