3 Stimmen

SQL Server 2000 - Fehlersuche bei Deadlocks

Ich bin auf der Suche nach Vorschlägen, wie man Deadlock-Probleme in einer SQL Server 2000-Datenbank debuggen und aufspüren kann. Man hat mir empfohlen, die Trace-Flags 1024 und 3605 zu verwenden, die mir Folgendes liefern:

1024 - dieses Trace-Flag gibt den Typ der am Deadlock beteiligten Sperren und den aktuell betroffenen Befehl zurück.

3605 - dieses Trace-Flag sendet Trace-Ausgaben an das Fehlerprotokoll.

Die spezifischen gespeicherten Prozeduren, Tabellen und Indizes müssen noch aufgedeckt werden, daher ist das Ziel, diese Trace-Flags zu verwenden. Von dort aus weiß ich dann besser, welche Indizes optimiert werden müssen, welche Sperrhinweise für die Optimierung von Abfragen benötigt werden und welche potenziellen Sproc-Fehler behoben werden müssen.

Haben Sie noch andere Vorschläge oder Erfahrungsberichte zur Lösung dieses Problems?

3voto

SQLMenace Punkte 128184

3voto

DiGi Punkte 2500

Sehr nützliches Skript zur Analyse von Deadlocks: http://www.sommarskog.se/sqlutil/aba_lockinfo.html

2voto

Gulzar Nazim Punkte 51098

Sobald Sie die beteiligten SQL-Anweisungen kennen, ist eine Code-Analyse sicherlich hilfreich. Einige Faustregeln sind die Überprüfung der Reihenfolge, in der auf die Zeilen zugegriffen wird, und die Überprüfung der für die SQL-Anweisungen verwendeten Isolationsebene. Ein Profiler-Trace kann eine große Hilfe sein.

Meistens liegt es daran, dass ein Leser versucht, eine gemeinsame Sperre für eine Ressource zu erhalten, die ausschließlich von einem Schreiber gesperrt ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X