Freigeben über


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

Hilfe und Informationen

Informationsquellen für SQL Server 2005