Inhaltsverzeichnis:

Wie kann Deadlock in SQL Server gestoppt werden?
Wie kann Deadlock in SQL Server gestoppt werden?

Video: Wie kann Deadlock in SQL Server gestoppt werden?

Video: Wie kann Deadlock in SQL Server gestoppt werden?
Video: Datenbanken 1 - Q&A zu Transaktionen 2024, Kann
Anonim

Tipps zur Vermeidung Sackgassen

Tun keine Benutzereingaben während der Transaktionen zulassen. Vermeiden Cursor. Halten Transaktionen so kurz wie möglich. Reduzieren Sie die Anzahl der Hin- und Rückfahrten zwischen Ihrer Bewerbung und SQL Server indem Sie gespeicherte Prozeduren verwenden oder Transaktionen innerhalb eines einzelnen Batches halten

Die Frage ist auch, wie können wir Deadlocks in SQL Server reduzieren?

Greifen Sie in derselben Reihenfolge auf Objekte zu

  1. Greifen Sie in derselben Reihenfolge auf Objekte zu.
  2. Vermeiden Sie Benutzerinteraktionen bei Transaktionen.
  3. Halten Sie Transaktionen kurz und in einem Batch.
  4. Verwenden Sie eine niedrigere Isolationsstufe.
  5. Verwenden Sie eine auf Zeilenversionsverwaltung basierende Isolationsstufe.

Was verursacht außerdem einen Deadlock in SQL Server? Die Ursache von jedem Deadlock in SQL Server EIN Sackgasse passiert, wenn sich zwei (oder mehr) Transaktionen gegenseitig blockieren, indem sie Sperren für Ressourcen halten, die jede der Transaktionen auch benötigt. Beispiel: Transaktion 1 hält eine Sperre für Tabelle A. Blockaden kann mehr als zwei Transaktionen umfassen, aber zwei sind das häufigste Szenario.

Wie kann dann Deadlock gelöst werden?

Die Sackgasse kann sein aufgelöst indem man die Symmetrie bricht.

Zwei Prozesse konkurrieren in entgegengesetzter Reihenfolge um zwei Ressourcen.

  1. Ein einzelner Prozess wird durchlaufen.
  2. Der spätere Prozess muss warten.
  3. Ein Deadlock tritt auf, wenn der erste Prozess die erste Ressource gleichzeitig sperrt, während der zweite Prozess die zweite Ressource sperrt.

Wie analysieren Sie einen Deadlock in SQL Server?

Verfolgen Sackgasse Ereignisse, fügen Sie die Sackgasse Graph-Ereignisklasse zu einem Trace. Diese Ereignisklasse füllt die TextData-Datenspalte im Trace mit XML-Daten über den Prozess und die Objekte, die an der Sackgasse . SQL Server Profiler kann das XML-Dokument in eine Datei extrahieren Sackgasse XML- (.

Empfohlen: