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