Zurück zu den Datenbanken-FAQs
HILFECENTER · FAQDatenbanken1 Min. Lesezeit

Wie untersuche ich einen Datenbank-Deadlock?

Ein Deadlock entsteht, wenn Transaktionen Ressourcen halten, die jeweils die andere benötigt, und gegenseitig warten. Viele Datenbankmodule erkennen den Zyklus und brechen eine Transaktion ab; die Anwendung muss den Fehler behandeln und nur sicher wiederholbare Vorgänge erneut versuchen.

Datenbanken

Deadlock-Details erfassen

Nutzen Sie Deadlock-Berichte oder Diagnoseprotokolle, um Anweisungen, Tabellen, Indizes und Sperrmodi zu erkennen. Vergleichen Sie Zugriffsreihenfolgen; längere Timeouts lösen keinen zirkulären Wartezustand.

Prüfen Sie, ob Anwendungspfade dieselben Ressourcen in unterschiedlicher Reihenfolge sperren oder Transaktionen während anderer Arbeit offen halten. Kürzere Transaktionen und konsistente Reihenfolge verringern Zyklen.

Muster korrigieren und validieren

Vereinheitlichen Sie gegebenenfalls den Zugriff auf gemeinsam genutzte Zeilen oder Tabellen und prüfen Sie passende Indizes für Update-Bedingungen. Berücksichtigen Sie das Sperrverhalten der konkreten Engine.

Testen Sie parallele Last, die den Fehler zuvor auslöste, und überwachen Sie die Häufigkeit nach der Änderung. Begrenzen Sie Wiederholungen und gestalten Sie sie idempotent, um externe Nebenwirkungen nicht zu duplizieren.

Zurück zu den Datenbanken-FAQs