Freigeben über


Grundlagen des Sperrens

Um das Sperren in Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) zu verstehen, sollten Sie mit den Ressourcen vertraut sein, die gesperrt werden können, sowie den verschiedenen Modi, die Sie zum Sperren von Ressourcen verwenden können.

Sperrgranularität

Die Sperrgranularität bezieht sich auf die Ebene, auf der Sperren auftreten.

  • Zeile
  • Tabelle
  • Seite
  • Datenbank

Durch das Sperren auf einer kleineren Granularität, wie z. B. der Zeilenebene, wird die Parallelität erhöht. Wenn viele Zeilen gesperrt werden, müssen allerdings mehr Sperren aufrechterhalten werden. Durch das Sperren auf einer größeren Granularität, wie z. B. der Tabellenebene, wird die Parallelität verringert, weil das Sperren einer gesamten Tabelle den Zugriff auf jeden Teil der Tabelle durch andere Transaktionen beschränkt. Es müssen jedoch beim Sperren auf Tabellenebene weniger Sperren aufrechterhalten werden.

Standardmäßig wird von SQL Server Compact Edition das Sperren auf Zeilenebene für Datenseiten und das Sperren auf Seitenebene für Indexseiten verwendet.

In der folgenden Tabelle sind die Ressourcen aufgeführt, die von SQL Server Compact Edition gesperrt werden können.

Sperren Beschreibung

RID

Zeilen-ID Wird für das Sperren einer einzelnen Zeile innerhalb einer Tabelle verwendet.

PAG

Datenseite oder Indexseite

TAB

Gesamte Tabelle, einschließlich aller Daten und Indizes.

MD

Tabellenmetadaten Wird für den Schutz des Tabellenschemas verwendet.

DB

Datenbank

Sperrmodi

Durch Sperrmodi wird der Zugriff durch parallele Transaktionen auf Daten bestimmt. Basierend auf den zu sperrenden Ressourcen und den auszuführenden Vorgängen wird von SQL Server Compact Edition bestimmt, welcher Sperrmodus verwendet wird.

In der folgenden Tabelle werden die Sperrmodi beschrieben, die von SQL Server Compact Edition unterstützt werden.

Sperrmodus Beschreibung

Shared (S)

Schützt eine Ressource für den Lesezugriff. Die Daten können von keiner anderen Transaktion geändert werden, wenn gemeinsame Sperren (Shared Locks, S) auf der Ressource vorhanden sind.

Exclusive (X)

Zeigt eine Datenänderung an, wie z. B. eine Einfügung, Aktualisierung oder Löschung. Stellt sicher, dass nicht mehrere Aktualisierungen von der gleichen Ressource gleichzeitig vorgenommen werden können.

Update (U)

Verhindert eine häufige Form des Deadlocks. Zu einem bestimmten Zeitpunkt kann nur eine Transaktion eine U-Sperre (Update, Aktualisieren) auf einer Ressource erhalten. Wenn von der Transaktion die Ressource geändert wird, wird die U-Sperre in eine X-Sperre konvertiert.

Schema

Wird beim Ausführen eines vom Tabellenschema abhängigen Vorgangs verwendet. Die Typen der Schemasperren sind Schemaänderung (Schema Modification, Sch-M) und Schemastabilität (Schema Stability, Sch-S).

Intent

Etabliert eine Sperrhierarchie. Die gebräuchlichsten Typen von beabsichtigten Sperren (Intent Locks) sind IS, IU und IX. Diese Sperren geben an, dass eine Transaktion auf einigen, aber nicht allen Ressourcen ausgeführt wird, die sich in tiefer in der Hierarchie befinden. Die Ressourcen auf niedrigerer Ebene verfügen über eine S-, U- oder X-Sperre.

Wichtig:
Für die Standardisolationsstufe READ COMMITTED erfordert die SELECT-Anweisung in SQL Server Compact Edition nicht das Verwenden von S-Sperren zum Lesen der Daten. Obwohl dies für Microsoft SQL Server erforderlich ist, wird in SQL Server Compact Edition keine S-Sperre benötigt, um READ COMMITTED zu erzwingen. Die einzige erforderliche Sperre für eine SELECT-Anweisung ist Sch-S, womit das Schema während der Ausführung des Vorgangs gesperrt wird. Dadurch sind SELECT-Anweisungen hochgradig parallel. Weitere Informationen finden Sie unter Isolationsstufen von Transaktionen.

Siehe auch

Konzepte

Sperren (SQL Server Compact Edition)
Grundlegendes zu Sperren
Anpassen des Sperrens

Hilfe und Information

Informationsquellen für SQL Server Compact Edition