Freigeben über


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

Column ID

Filterbar

ApplicationName

nvarchar

Der Name der Clientanwendung, die die Verbindung mit einer Instanz von SQL Server hergestellt hat. Diese Spalte wird mit den von der Anwendung übergebenen Werten und nicht mit dem angezeigten Programmnamen aufgefüllt.

10

Ja

BinaryData

image

ID der LOCK-Ressource.

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

GroupID

int

ID der Arbeitsauslastungsgruppe, in der das SQL-Ablaufverfolgungsereignis ausgelöst wird.

66

Ja

HostName

nvarchar

Der 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

IntegerData2

int

Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

55

Ja

IsSystem

int

Gibt an, ob das Ereignis bei einem Systemprozess oder einem 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

Die Sicherheits-ID (SID) des angemeldeten Benutzers. Diese Informationen finden Sie in der sys.server_principals-Katalogsicht. 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 = Freigegebene Sperre (LCK_M_S)

4 = Aktualisierungssperre (LCK_M_U)

5 = Exklusive Sperre (LCK_M_X)

6 = Beabsichtigte freigegebene Sperre (LCK_M_IS)

7 = Beabsichtigte Aktualisierungssperre (LCK_M_IU)

8 = Beabsichtigte exklusive Sperre (LCK_M_IX)

9 = Freigegebene Sperre mit beabsichtigter Aktualisierungssperre (LCK_M_SIU)

10 = Freigegebene Sperre mit beabsichtigter exklusiver Sperre (LCK_M_SIX)

11 = Aktualisierungssperre mit beabsichtigter exklusiver Sperre (LCK_M_UIX)

12 = Massenaktualisierungssperre (LCK_M_BU)

13 = Freigegebene Sperren für Schlüsselbereich und Ressource (LCK_M_RS_S)

14 = Freigegebene Sperre für Schlüsselbereich und Aktualisierungssperre für Ressource (LCK_M_RS_U)

15 = Einfügungssperre für Schlüsselbereich und NULL-Sperre für Ressource (LCK_M_RI_NL)

16 = Einfügungssperre für Schlüsselbereich und freigegebene Ressourcensperre (LCK_M_RI_S)

17 = Einfügungssperre für Schlüsselbereich und Aktualisierungssperre (LCK_M_RI_U)

18 = Einfügungssperre für Schlüsselbereich und exklusive Ressourcensperre (LCK_M_RI_X)

19 = Exklusive Sperren für Schlüsselbereich und freigegebene Ressource (LCK_M_RX_S)

20 = Exklusive Sperren für Schlüsselbereich und Aktualisierung (LCK_M_RX_U)

21 = Exklusive Sperren für Schlüsselbereich und Ressource (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

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 verwenden, um 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. In dieser Spalte werden sowohl SQL Server- als auch Windows-Anmeldungen angezeigt.

64

Ja

SPID

int

ID der Sitzung, bei 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