Share via


Sperren (SQL Server Compact Edition)

Wenn mehrere Benutzer oder Anwendungen gleichzeitig auf die gleichen Daten zugreifen, verhindert das Sperren das gleichzeitige Ändern der Daten. Sperren werden intern durch Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) Database Engine (Datenbankmodul) verwaltet. Die Sperren werden automatisch basierend auf Benutzeraktionen aktiviert und deaktiviert.

Wenn keine Sperren verwendet werden und mehrere Benutzer gleichzeitig die gleichen Daten aktualisieren, können die Daten innerhalb der Datenbank logisch falsch sein. Bei Abfragen auf diesen Daten kann es dann zu unerwarteten Ergebnissen kommen.

Von einer Anwendung wird niemals eine direkte Anforderung für eine Sperre gestellt. Stattdessen werden von SQL Server Compact Edition beim Beginn einer Transaktion, wenn Befehle in der Abfragesprache, der Datenmanipulationssprache (Data Manipulation Language, DML) oder der Datendefinitionssprache (Data Definition Language, DDL) innerhalb der Transaktion ausgeführt werden, alle Ressourcen gesperrt, die dem Schutz der Ressourcen auf der von Ihnen gewünschten Isolationsstufe dienen.

Von SQL Server Compact Edition wird automatisch bestimmt, wann Sperren für alle Ressourcen aktiviert und deaktiviert werden. Standardmäßig werden Sperren auf Zeilenebene für Datenseiten und auf Seitenebene für Indexseiten verwendet. Um Systemressourcen zu erhalten, werden vom Sperren-Manager automatisch Sperreskalationen ausgeführt, wenn ein konfigurierbarer Schwellenwert für die Anzahl der Zeilensperren überschritten wird. Die Maximalanzahl der Sperren, die pro Sitzung im Sperren-Manager zugeordnet werden kann, beträgt 262143.

Sie können die Sperrgranularität für einige Vorgänge ändern. Gehen Sie dabei umsichtig vor, denn das Ändern der Sperrgranularität kann sich auf den gleichzeitigen Zugriff nachteilig auswirken.

Die folgenden Ressourcen können von SQL Server Compact Edition gesperrt werden:

  • Zeilen
  • 4 KB Daten oder Indexseiten
  • Tabellenschemata
  • Tabellen
  • Datenbanken

Das Sperren einer kleineren Granularität wie beispielsweise der Zeilenebene erhöht den gleichzeitigen Zugriff, führt aber zu mehr Overhead, da mehr Sperren aufrecht erhalten werden müssen, wenn viele Zeilen gesperrt sind. Das Sperren einer größeren Granularität wie beispielsweise der Tabellenebene reduziert den gleichzeitigen Zugriff, da das Sperren einer gesamten Tabelle den Zugriff auf jeden Teil der Tabelle durch andere Transaktionen beschränkt. Das Sperren auf dieser Ebene führt allerdings zu einem geringeren Overhead, weil weniger Sperren aufrecht erhalten werden.

In diesem Abschnitt

Thema Beschreibung

Grundlegendes zu Sperren

Erläutert die Grundlagen des Sperrens in SQL Server 2005 Compact Edition.

Anzeigen von Sperrinformationen

Beschreibt Anzeigeinformationen, die von der sys.lock_information-Ansicht zurückgegeben werden.

Anpassen des Sperrens

Beschreibt Möglichkeiten zum Anpassen des Sperrens.

Siehe auch

Hilfe und Information

Informationsquellen für SQL Server Compact Edition