Share via


Sperrengranularität und -hierarchien

Microsoft SQL Server-Datenbankmodul verwendet multigranulare Sperren, die es ermöglichen, dass unterschiedliche Typen von Ressourcen von einer Transaktion gesperrt werden. Um die Kosten für das Sperren zu minimieren, sperrt Datenbankmodul automatisch Ressourcen auf einer für die Aufgabe geeigneten Stufe. Bei Verwendung von Sperren mit differenzierterer Granularität, z. B. Sperren für Zeilen, steigt die Parallelität, aber der Verwaltungsaufwand ist größer, da mehr Sperren aufrechterhalten werden müssen, wenn viele Zeilen gesperrt werden. Die Verwendung von Sperren mit gröberer Granularität, z. B. Sperren für Tabellen, wirkt sich nachteilig auf die Parallelität aus, da durch das Sperren einer gesamten Tabelle der Zugriff auf alle Teile der Tabelle für andere Transaktionen eingeschränkt wird. Der Verwaltungsaufwand nimmt jedoch ab, da weniger Sperren aufrechterhalten werden müssen.

Datenbankmodul muss häufig Sperren auf einer höheren Granularitätsebene einrichten, um eine Ressource vollständig zu schützen. Diese Gruppe von Sperren auf mehreren Granularitätsebenen wird als Sperrenhierarchie bezeichnet. Um z. B. das Lesen eines Indexes vollständig zu schützen, muss eine Instanz von Datenbankmodul gegebenenfalls gemeinsame Sperren für Spalten und beabsichtigt-gemeinsame Sperren für die Seiten und Tabellen einrichten.

Die folgende Tabelle zeigt die Ressourcen, die Datenbankmodul sperren kann.

Ressource Beschreibung

RID

Ein Zeilenbezeichner, der verwendet wird, um eine einzelne Zeile in einem Heap zu sperren.

KEY

Eine Zeilensperre in einem Index, die verwendet wird, um Schlüsselbereiche in serialisierbaren Transaktionen zu schützen.

PAGE

Eine 8-KB-Seite in einer Datenbank, z. B. Daten- oder Indexseiten.

EXTENT

Eine zusammenhängende Gruppe von acht Seiten, z. B. Datenseiten oder Indexseiten.

HOBT

Ein Heap oder eine B-Struktur. Eine Sperre, die einen Index oder den Heap von Datenseiten in einer Tabelle schützt, die keinen gruppierten Index besitzt.

TABLE

Die vollständige Tabelle mit sämtlichen Daten und Indizes.

FILE

Eine Datenbankdatei.

APPLICATION

Eine von der Anwendung angegebene Ressource.

METADATA

Metadatensperren.

ALLOCATION_UNIT

Eine Zuordnungseinheit.

DATABASE

Die gesamte Datenbank.

Siehe auch

Konzepte

Sperrmodi
Kompatibilität von Sperren (Datenbankmodul)

Hilfe und Informationen

Informationsquellen für SQL Server 2005