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.

Element 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.
Object 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_objectsist.
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 SQL Server-Dokumentation wird der Begriff „B-Struktur“ im Allgemeinen in Bezug auf Indizes verwendet. In Zeilenspeicherindizes implementiert SQL Server 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%';