2009-07-17 6 views
0

Wir führen eine sehr kleine Löschung gegen unsere Ereignistabelle in SQL 2008 durch und es erzeugt zufällig einen Deadlock. Wir können es jedoch nicht auf Anfrage wiederherstellen. Die Anweisung delete gilt für maximal 2 Zeilen.SQL 2008 Deadlocks beim einfachen Löschen

VON Administration_NET.dbo.tblEvents DELETE Wo EMSaccountID = 'DELE10A'

Irgendwelche Ideen?

+1

weitere Informationen bitte, wie Ausführungsplan und Indizes auf dem Tisch –

Antwort

0

Lauf:

SET SET SHOWPLAN_ALL ON 

und dann löschen, gibt es eine Tabelle scannen? Wenn ja, haben Sie ein Indexproblem

3

Deadlock gegen sich selbst oder Deadlock mit einer anderen Aussage?

Es kann eine einfache sein reader/writer deadlock based on index access order, siehe meinen Link für eine Beschreibung. Dies ist sehr wahrscheinlich, wenn EMSaccountID ein nicht gruppierter Index ist.

0

Wie viele verschiedene Arten von Anweisungen treffen die Tabelle tblEvents? Ist es möglich, dass Sie eine insert/update/select-Anweisung gleichzeitig mit dem Löschen ausführen? Sie könnten versuchen, das Problem erneut zu erstellen, indem Sie eine große Anzahl von Einfügungen/Aktualisierungen/Selektionen gleichzeitig ausführen, während Sie versuchen, einige Löschungen durchzuführen.

0

Ich habe blöde Idee - vielleicht setzen Sie Tabelle Administration_NET.dbo.tblEvents zu Kaskade löschen verwenden ... In diesem Fall löscht Operation löschen mehr Sperren auf mehr Tabellen.

1

Niemand kann Sie ohne reichere Informationen helfen:

Insbesondere einige Trace-Flags so SQL Server den Grund ermöglichen muss er die betreffende Transaktion gerollt wird wieder anmelden.

So, Deadlock-Ablaufverfolgung aktivieren:

DBCC TRACEON(1204,1222)  

(Diese Einstellung wird verschwinden, wenn Sie Zyklus SQL Server, können Sie es in den Startoptionen angeben können, falls erforderlich)

Sobald diese Einstellung aktiviert ist, Ihre SQL Server-Log-Informationen über die Deadlock-Kette enthalten wird, sieht es so etwas wie diese:

 
2003-05-14 11:46:26.76 spid4  Starting deadlock search 1 
2003-05-14 11:46:26.76 spid4  Target Resource Owner: 
2003-05-14 11:46:26.76 spid4  ResType:LockOwner Stype:'OR' Mode: S SPID:55 ECID:0 Ec:(0x43CAB580) Value:0x42bdf340 
2003-05-14 11:46:26.76 spid4  Node:1  ResType:LockOwner Stype:'OR' Mode: S SPID:55 ECID:0 Ec:(0x43CAB580) Value:0x42bdf340 
2003-05-14 11:46:26.76 spid4  
2003-05-14 11:46:26.76 spid4  End deadlock search 1 ... a deadlock was not found. 
2003-05-14 11:46:26.76 spid4  ---------------------------------- 
2003-05-14 11:46:31.76 spid4  ---------------------------------- 
2003-05-14 11:46:31.76 spid4  Starting deadlock search 2 

Paste, die Informationen zu Ihrer Frage, ist es wichtig, dia das Problem erkennen.

Verwandte Themen