Lock:Timeout (Ereignisklasse)

Die Lock:Timeout-Ereignisklasse gibt an, dass für die Anforderung einer Sperre auf einer Ressource, wie beispielsweise eine Seite, ein Timeout eingetreten ist, da eine andere Transaktion eine blockierende Sperre für die angeforderte Ressource aufrechterhält. Das Timeout wird durch die @@LOCK_TIMEOUT-Systemfunktion ermittelt und kann durch die SET LOCK_TIMEOUT-Anweisung festgelegt werden.

Die Lock:Timeout-Ereignisklasse kann dazu verwendet werden, Bedingungen zu überwachen, die zu Timeouts führen. Diese Informationen sind nützlich, wenn ermittelt werden soll, ob Timeouts eine Auswirkung auf die Leistung der Anwendung haben und welche Objekte daran beteiligt sind. Sie können den Anwendungscode überprüfen, von dem diese Objekte geändert werden, um festzustellen, ob Änderungen vorgenommen werden können, die Timeouts minimieren.

Lock:Timeout-Ereignisse mit der Dauer 0 sind häufig das Ergebnis interner Sperrenuntersuchungen und weisen nicht unbedingt auf ein Problem hin. Das Lock:Timeout (timeout > 0)-Ereignis kann zum Ignorieren von Timeouts mit der Dauer 0 verwendet werden.

Lock:Timeout (Ereignisklasse-Datenspalten)

Datenspaltenname 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

Sperrenressourcen-ID.

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 vom Client die Clientprozess-ID bereitgestellt wird.

9

Ja

DatabaseID

int

ID der Datenbank, in der der Timeout aufgetreten ist. Von SQL Server Profiler wird der Name der Datenbank angezeigt, wenn die Datenspalte ServerName in der Ablaufverfolgung erfasst wird 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 der Timeout aufgetreten ist.

35

Ja

Dauer

bigint

Verstrichene Zeit (in Mikrosekunden) zwischen der Ausgabe der Sperranforderung und dem Timeout für die Sperre.

13

Ja

EndTime

datetime

Beendigungszeit des Ereignisses.

15

Ja

EventClass

int

Ereignistyp = 27.

27

Nein

EventSequence

int

Die Sequenz eines gegebenen Ereignisses innerhalb der Anforderung.

51

Nein

HostName

nvarchar

Name des Computers, auf dem der Client ausgeführt wird. Diese Datenspalte wird aufgefüllt, wenn vom Client der Hostname bereitgestellt wird. Der Hostname kann mithilfe der HOST_NAME-Funktion ermittelt werden.

8

Ja

IntegerData2

int

Reserviert für zukünftige Verwendung.

55

Ja

IsSystem

int

Gibt an, ob das Ereignis in einem System- oder Benutzerprozess aufgetreten ist. 1 = System, 0 = Benutzer.

60

Ja

LoginName

nvarchar

Anmeldename des Benutzers (Anmeldung der SQL Server-Sicherheit oder Microsoft Windows-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

Modus

int

Der Modus nach dem Timeout.

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 = Gemeinsam verwendete Sperre (LCK_M_S)

4 = Aktualisierungssperre (LCK_M_U)

5 = Exklusive Sperre (LCK_M_X)

6 = Beabsichtigte gemeinsame Sperre (LCK_M_IS)

7 = Beabsichtigte Aktualisierungssperre (LCK_M_IU)

8 = Beabsichtigte exklusive Sperre (LCK_M_IX)

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_SIX)

12 = Massenaktualisierungssperre (LCK_M_BU)

13 = Schlüsselbereichssperre Gemeinsam/Gemeinsam (LCK_M_RS_S)

14 = Schlüsselbereichssperre Gemeinsam/Aktualisierung (LCK_M_RS_S)

15 = Schlüsselbereichssperre Einfügen-NULL (LCK_M_RI_NL)

16 = Schlüsselbereichssperre Einfügen-Gemeinsam (LCK_M_RI_S)

17 = Schlüsselbereichssperre Einfügen-Aktualisierung (LCK_M_RI_U)

18 = Schlüsselbereichssperre Einfügen-Exklusiv (LCK_M_RI_X)

19 = Schlüsselbereichssperre Exklusiv-Gemeinsam (LCK_M_RX_S)

20 = Schlüsselbereichssperre Exklusiv-Aktualisierung (LCK_M_RX_U)

21 = Schlüsselbereichssperre Exklusiv-Exklusiv (LCK_M_RX_X)

32

Ja

NTDomainName

nvarchar

Die Windows-Domäne, der der Benutzer angehört.

7

Ja

NTUserName

nvarchar

Windows-Benutzername.

6

Ja

ObjectID

int

ID des Objekts, für das ein Timeout durchgeführt wurde (falls verfügbar und anwendbar).

22

Ja

ObjectID2

bigint

ID des verknüpften Objekts oder Elements (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

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

Anmeldename des Benutzers, der die Sitzung ursprünglich begonnen hat. Wenn Sie beispielsweise eine Verbindung zu SQL Server mithilfe von Login1 herstellen und eine Anweisung als Login2 ausführen, wird von SessionLoginName Login1 angezeigt, von LoginName dagegen Login2. In dieser Spalte werden sowohl SQL Server- als auch Windows-Anmeldungen angezeigt.

64

Ja

SPID

int

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 von dem Sperrentyp, der zum Zeitpunkt des Timeouts angefordert wurde.

1

Ja

TransactionID

bigint

Vom System zugewiesene ID der Transaktion.

4

Ja

Typ

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

Verweis

Lock:Timeout (timeout > 0)-Ereignisklasse

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