SQL Server, Sperren (Objekt)
Gilt für: SQL Server
Das SQLServer:Locks-Objekt in Microsoft SQL Server stellt Informationen zu SQL Server-Sperren für einzelne Ressourcentypen bereit. SQL Server -Ressourcen, wie etwa Zeilen, die während einer Transaktion gelesen oder geändert werden, werden mit Sperren belegt, um die zeitgleiche Verwendung der Ressourcen durch verschiedene Transaktionen zu verhindern. Wenn beispielsweise eine Zeile in einer Tabelle von einer Transaktion mit einer exklusiven Sperre (X) belegt wird, kann diese Zeile erst dann von einer anderen Transaktion geändert werden, wenn die Sperre aufgehoben wird. Durch die Reduzierung der Anzahl von Sperren kann die Parallelität erhöht werden, wodurch sich die Leistung verbessert. Es können mehrere Instanzen des Sperren -Objekts gleichzeitig überwacht werden, wobei jede Instanz eine Sperre für einen Ressourcentyp darstellt.
In dieser Tabelle werden die SQL Server-Sperrzähler beschrieben.
Sperren-Leistungsindikatoren von SQL Server | Beschreibung |
---|---|
Durchschnittliche Wartezeit (ms) | Die durchschnittliche Länge der Wartezeit (in Millisekunden) für jede Sperranforderung, die nicht sofort erfüllt werden konnte. |
Basis für durchschnittliche Wartezeit | Nur zur internen Verwendung. |
Sperranforderungen/Sekunde | Anzahl von neuen Sperren und Sperrkonvertierungen pro Sekunde, die vom Sperren-Manager angefordert wurden. |
Timeouts sperren (Timeout > 0)/Sek. | Die Anzahl von Sperranforderungen pro Sekunde, für die ein Timeout eingetreten ist. Interne Anforderungen für NOWAIT-Sperren sind darin nicht eingeschlossen. |
Sperrtimeouts/Sekunde | Die Anzahl von Sperranforderungen pro Sekunde, für die ein Timeout eingetreten ist. Dies umfasst auch Anforderungen für NOWAIT-Sperren. |
Wartezeit für Sperre (ms) | Gesamtwartezeit (in Millisekunden) für Sperren in der vergangenen Sekunde. |
Sperrenwartevorgänge/Sekunde | Anzahl von Sperranforderungen pro Sekunde, bei denen der aufrufende Prozess warten musste. |
Anzahl von Deadlocks/Sekunde | Anzahl von Sperranforderungen pro Sekunde, die zu einem Deadlock geführt haben. |
SQL Server kann diese Ressourcen sperren.
Artikel | Beschreibung |
---|---|
_Total | Informationen für alle Sperren. |
AllocUnit | Eine Sperre für eine Zuweisungseinheit. |
Anwendung | Eine Sperre für eine anwendungsspezifische Ressource. |
Datenbank | Eine Sperre für eine Datenbank, einschließlich aller Objekte in der Datenbank. |
Extent | Eine Sperre für eine zusammenhängende Gruppe von 8 Seiten. |
Datei | Eine Sperre für eine Datenbankdatei. |
Heap/B-Struktur | Heap oder B-Struktur. Eine Sperre auf einem Heap von Datenseiten oder in der B-Struktur eines Indexes. |
Schlüssel | Eine Sperre für eine Zeile in einem Index. |
Metadaten | Eine Sperre für eine Kataloginformationskomponente, die auch als Metadaten bezeichnet wird. |
Objekt | Eine Sperre für eine Tabelle, gespeicherte Prozedur, Sicht usw., einschließlich aller Daten und Indizes. Das Objekt kann alles sein, in dem ein Eintrag enthalten sys.all_objects ist. |
OIB | LOCK-Ressource für Onlineindexerstellungs-Sperren, speziell für eine Onlineindexerstellungs-LOB-Nachverfolgungstabelle. |
Seite | Eine Sperre für eine 8-KB-Seite in einer Datenbank. |
RID | Zeilen-ID. Eine Sperre für eine einzelne Zeile in einem Heap. |
RowGroup | LOCK-Ressource für eine Zeilengruppe eines Columnstore-Indexes. |
Xact | LOCK-Ressource für eine Transaktion. |
Hinweis
In der Dokumentation wird der Begriff „B-Struktur“ im Allgemeinen in Bezug auf Indizes verwendet. In Zeilenspeicherindizes implementiert die Datenbank-Engine eine B+-Struktur. Dies gilt nicht für Columnstore-Indizes oder In-Memory-Datenspeicher. Weitere Informationen finden Sie im Leitfaden zur Architektur und zum Entwerfen von SQL Server- und Azure SQL-Indizes.
Beispiel
Sie beginnen damit, die Abfrageleistungsindikatoren in diesem Objekt mithilfe dieser T-SQL-Abfrage in der dynamischen Verwaltungssicht sys.dm_os_performance_counters zu untersuchen:
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Locks%';