Lock:Deadlock (Ereignisklasse)
Nach dem abgebrochenen Versuch, eine Sperre abzurufen, wird die Lock:Deadlock-Ereignisklasse erstellt, weil dieser Versuch Teil einer Deadlocksituation war und als Deadlockopfer ausgewählt wurde.
Mit der Ereignisklasse Lock:Deadlock können Sie überwachen, ob Deadlocks auftreten und welche Objekte beteiligt sind. Mithife dieser Informationen können Sie ermitteln, ob die Deadlocks die Leistung Ihrer Anwendung deutlich beeinträchtigen oder nicht. Anschließend können Sie den Anwendungscode daraufhin untersuchen, ob Änderungen möglich sind, mit denen das Auftreten von Deadlocks minimiert wird.
Datenspalten in der Lock:Deadlock-Ereignisklasse
Name der Datenspalte | Datentyp | Beschreibung | Spalten-ID | Filterbar |
---|---|---|---|---|
ApplicationName |
nvarchar |
Der Name der Clientanwendung, die die Verbindung mit einer Instanz von SQL Server hergestellt hat. Diese Spalte wird mit den Werten aufgefüllt, die von der Anwendung übergeben werden, und nicht mit dem angezeigten Namen des Programms. |
10 |
Ja |
BinaryData |
image |
Bezeichner der Sperrressource. |
2 |
Ja |
ClientProcessID |
int |
Die ID, die der Hostcomputer dem Prozess zuweist, in dem die Clientanwendung ausgeführt wird. Diese Datenspalte wird aufgefüllt, wenn die Clientprozess-ID durch den Client bereitgestellt wird. |
9 |
Ja |
DatabaseID |
int |
ID der Datenbank, in der die Sperre eingerichtet wurde. SQL Server Profiler zeigt den Namen der Datenbank an, wenn die ServerName-Datenspalte in der Ablaufverfolgung erfasst wurde und der Server verfügbar ist. Der Wert für eine Datenbank kann mithilfe der DB_ID-Funktion ermittelt werden. |
3 |
Ja |
DatabaseName |
nvarchar |
Name der Datenbank, in der die Sperre eingerichtet wurde. |
35 |
Ja |
Duration |
bigint |
Zeitraum (in Mikrosekunden) zwischen dem Zeitpunkt, zu dem die Sperranforderung ausgegeben wurde, und dem Zeitpunkt, zu dem der Deadlock auftrat. |
13 |
Ja |
EndTime |
datetime |
Zeitpunkt, zu dem der Deadlock beendet war. |
15 |
Ja |
EventClass |
int |
Ereignistyp = 25. |
27 |
Nein |
EventSequence |
int |
Die Sequenz eines bestimmten Ereignisses innerhalb der Anforderung. |
51 |
Nein |
HostName |
nvarchar |
Name des Computers, auf dem der Client ausgeführt wird. Diese Datenspalte wird aufgefüllt, wenn der Client den Hostnamen bereitstellt. Der Hostname kann mithilfe der HOST_NAME-Funktion ermittelt werden. |
8 |
Ja |
IntegerData |
int |
Deadlocknummer. Die Nummern werden beginnend mit 0 zugewiesen, wenn der Server gestartet wird, und bei jedem Deadlock erhöht. |
25 |
Ja |
IntegerData2 |
int |
Zur künftigen Verwendung reserviert. |
55 |
Ja |
IsSystem |
int |
Zeigt an, ob das Ereignis in einem Systemprozess oder einem Benutzerprozess aufgetreten ist. 1 = System, 0 = Benutzer. |
60 |
Ja |
LoginName |
nvarchar |
Anmeldename des Benutzers (SQL Server-Sicherheitsanmeldung oder Microsoft-Anmeldeinformationen im Format DOMAIN\username). |
11 |
Ja |
LoginSid |
image |
Sicherheits-ID (SID) des angemeldeten Benutzers. Sie finden diese Informationen in der syslogins-Tabelle der master-Datenbank. Die SID ist für jede Anmeldung am Server eindeutig. |
41 |
Ja |
Mode |
int |
Der resultierende Modus nach dem Deadlock. 0=NULL - Kompatibel mit allen anderen Sperrmodi (LCK_M_NL) 1=Schemastabilitätssperre (LCK_M_SCH_S) 2=Schemaänderungssperre (LCK_M_SCH_M) 3=Gemeinsame Sperre (LCK_M_S) 3=Aktualisierungssperre (LCK_M_S) 5=Exklusive Sperre (LCK_M_X) 6=Beabsichtigte gemeinsame Sperre (LCK_M_IS) 7=Beabsichtigte Aktualisierungssperre (LCK_M_IS) 6=Beabsichtigte exklusive Sperre (LCK_M_IS) 9=Gemeinsame Sperre mit beabsichtigter Aktualisierungssperre (LCK_M_SIU) 10=Gemeinsame Sperre mit beabsichtigter exklusiver Sperre (LCK_M_SIX) 11=Aktualisierungssperre mit beabsichtigter exklusiver Sperre (LCK_M_UIX) 12=Massenaktualisierungssperre (LCK_M_BU) 13=Gemeinsamer Schlüsselbereich und gemeinsame Sperre (LCK_M_RS_S) 14=Gemeinsamer Schlüsselbereich und gemeinsame Aktualisierungssperre (LCK_M_RS_U) 15=Schlüsselbereich einfügen und keine Sperre (LCK_M_RI_NL) 16=Schlüsselbereich einfügen und gemeinsame Sperre (LCK_M_RI_S) 17=Schlüsselbereich einfügen und Aktualisierungssperre (LCK_M_RI_U) 18=Schlüsselbereich einfügen und exklusive Sperre (LCK_M_RI_X) 19=Exklusiver Schlüsselbereich und gemeinsame Sperre (LCK_M_RX_S) 20=Exklusiver Schlüsselbereich und exklusive Aktualisierungssperre (LCK_M_RX_U) 21=Exklusiver Schlüsselbereich und exklusive Sperre (LCK_M_RX_X) |
32 |
Ja |
NTDomainName |
nvarchar |
Die Windows-Domäne, der der Benutzer angehört. |
7 |
Ja |
NTUserName |
nvarchar |
Der Windows-Benutzername. |
6 |
Ja |
ObjectID |
int |
ID des Objekts, das sich in einem Konflikt befindet (falls verfügbar und anwendbar). |
22 |
Ja |
ObjectID2 |
bigint |
ID des zugehörigen Objekts oder der zugehörigen Entität (falls verfügbar und anwendbar). |
56 |
Ja |
OwnerID |
int |
1=TRANSACTION 2=CURSOR 3=SESSION 4=SHARED_TRANSACTION_WORKSPACE 5=EXCLUSIVE_TRANSACTION_WORKSPACE |
58 |
Ja |
RequestID |
int |
Die ID der Anforderung, die die Anweisung enthält. |
49 |
Ja |
ServerName |
nvarchar |
Name der Instanz von SQL Server, für die eine Ablaufverfolgung ausgeführt wird. |
26 |
Nein |
SessionLoginName |
nvarchar |
Der Anmeldename des Benutzers, der die Sitzung geöffnet hat. Wenn Sie beispielsweise Login1 dazu verwenden, eine Verbindung mit SQL Server herzustellen, und eine Anweisung als Login2 ausführen, zeigt SessionLoginName den Wert Login1 an, wogegen LoginName den Wert Login2 anzeigt. Diese Spalte zeigt sowohl den SQL Server- als auch den Windows-Anmeldenamen an. |
64 |
Ja |
SPID |
int |
Die ID der Sitzung, in der das Ereignis aufgetreten ist. |
12 |
Ja |
StartTime |
datetime |
Der Zeitpunkt, zu dem das Ereignis begonnen hat (falls verfügbar). |
14 |
Ja |
TextData |
ntext |
Textwert; abhängig vom Typ der eingerichteten Sperre. |
1 |
Ja |
TransactionID |
bigint |
Vom System zugewiesene ID der Transaktion. |
4 |
Ja |
Type |
int |
1=NULL_RESOURCE 2=DATABASE 3=FILE 5=OBJECT 6=PAGE 7=KEY 8=EXTENT 9=RID 10=APPLICATION 11=METADATA 12=AUTONAMEDB 13=HOBT 14=ALLOCATION_UNIT |
57 |
Ja |
Siehe auch
Konzepte
Sperren im Datenbankmodul
Kompatibilität von Sperren (Datenbankmodul)
Andere Ressourcen
Überwachen von Ereignissen
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks