Ich teste meine Anwendung. Ich benötige Code, der den Deadlock auf der Datenbank-Site stabil simuliert (wenn möglich SQL-Skript).
Vielen Dank.
HINZUGEFÜGT:
sql-server
deadlock
Garik
quelle
quelle
Antworten:
Am besten verwenden Sie bereits vorhandene Tabellen. Erstellen Sie zwei Tabellen - Tabelle-a, Tabelle-b. Für einen Test können Sie sogar dieselbe Spalte mit denselben Informationen aktualisieren, sodass Sie keine realen Daten beeinflussen.
Zum Beispiel UPDATE table_a setze ID = ID wobei ID = 100;
Öffnen Sie zwei Sitzungen in derselben Datenbank. Auf einen Lauf
Auf zwei laufen
Kopieren Sie dann die Aktualisierungsanweisungen in die gegnerischen Sitzungen und führen Sie sie gleichzeitig aus. In Eins,
In zwei
Ich habe das gerade ausprobiert und bin auf MS-SQL umgestiegen
quelle
Verwenden Sie die
sp_getapplock
gespeicherte Systemprozedur, um alle Sperren zu übernehmen, die für Ihren Beispielcode erforderlich sind.Genau genommen ist dies ein Dijkstra-Semaphor . Trotzdem verdammt nützlich
quelle
sp_getapplock
Wirft keinen Fehler. Entweder wird gewartet, bis das Timeout abgelaufen ist, oder (falls es kein Timeout gibt) wird um-3
Hier ist eine andere Methode ähnlich der oben angegebenen ->
Skript zur Verwendung in Abfragefenster 1
Skript zur Verwendung in Abfragefenster 2
Skript, das zum Abfragefenster Nr. 1 hinzugefügt werden soll
Weitere Informationen hierzu finden Sie unter http://ajitananthram.wordpress.com/2014/02/23/scripts-to-force-a-deadlock-in-sql-server/
quelle