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?

War es hilfreich?

Lösung

Haben Sie nach dem Upgrade auf SQL Server 2008 das unten ausgeführt?

  1. DBCC UPDATEUSGAE
  2. Aktualisieren Sie Statistiken mit FullScan
  3. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top