Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können eine Reihe von Sperrhinweisen auf Tabellenebene mithilfe der Anweisungen SELECT, INSERT, UPDATE und DELETE angeben, um das Standardsperrverhalten von Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) zu ändern. Sperrhinweise sollten nur verwendet werden, wenn dies unbedingt erforderlich ist. Sie können sich negativ auf die Parallelität auswirken.
Wichtig: |
|---|
| SQL Server Compact Edition fordert die für einen Vorgang benötigten Sperren automatisch an. Wenn Sie die in der folgenden Tabelle aufgeführten Sperrhinweise verwenden, erhöht SQL Server Compact Edition die Anzahl der vorkommenden Sperrungen. Sperrhinweise können nicht verwendet werden, um die Sperrung von Ressourcen zu verhindern. |
In der folgenden Tabelle werden die Sperrhinweise beschrieben, die Sie in SQL Server Compact Edition verwenden können.
| Name des Sperrhinweises | Beschreibung des Sperrhinweises | ||
|---|---|---|---|
GRANULARITY |
|||
ROWLOCK |
Verwenden Sie Sperrhinweise auf Zeilenebene beim Lesen oder Ändern von Daten. Diese werden bei Bedarf angefordert und aufgehoben. SELECT-Vorgänge richten Sperren vom Typ S für Zeilen ein. |
||
PAGLOCK |
Verwenden Sie Sperrhinweise auf Seitenebene beim Lesen oder Ändern von Daten. Diese werden bei Bedarf angefordert und aufgehoben. SELECT-Vorgänge richten Sperren vom Typ S für Seiten ein. |
||
TABLOCK |
Verwenden Sie eine Tabellensperre beim Lesen oder Ändern von Daten. Diese Sperre wird bis zum Ende der Anweisung aufrechterhalten. SELECT-Vorgänge richten Sperren vom Typ S für Tabellen ein. |
||
DBLOCK |
Verwenden Sie eine Datenbanksperre beim Lesen oder Ändern von Daten. Diese Sperre wird bis zum Ende der Anweisung aufrechterhalten. SELECT-Vorgänge richten Sperren vom Typ S für Datenbanken ein. |
||
LOCKMODES |
|||
UPDLOCK |
Verwenden Sie Aktualisierungssperren anstelle gemeinsamer Sperren beim Lesen einer Tabelle, und verwenden Sie HOLDLOCK bis zum Ende der Anweisung oder der Transaktion. Mit UPDLOCK können Sie Daten lesen ohne andere Benutzer zu blockieren und später mit der Gewissheit aktualisieren, dass die Daten seit dem letzten Lesevorgang nicht geändert wurden. SELECT-Vorgänge richten Sperren vom Typ U ein. Die Standardgranularität ist ROWLOCK. |
||
XLOCK |
Verwenden Sie exklusive Sperren anstelle gemeinsamer Sperren beim Lesen einer Tabelle, und verwenden Sie HOLDLOCK bis zum Ende der Anweisung oder der Transaktion. SELECT-Vorgänge richten Sperren vom Typ X ein. Die Standardgranularität ist ROWLOCK. |
||
DURATION |
|||
HOLDLOCK |
Verwenden Sie HOLDLOCK, um eine Sperre bis zum Ende der Transaktion aufrechtzuerhalten, anstatt sie aufzuheben, sobald die erforderliche Tabelle, Zeile oder Datenseite nicht mehr benötigt wird. Wird keine Granularität angegeben, wird ROWLOCK angewendet. |
||
NOLOCK |
Es werden keine Sperren ausgegeben. Dies ist die Standardeinstellung für SELECT-Vorgänge. Dieser Typ wird nicht auf die AnweisungenINSERT, UPDATE- und DELETE angewendet.
|
Weitere Informationen zum Verwenden von Sperrhinweisen finden Sie unter "Sperrhinweise" in der SQL Server-Onlinedokumentation.
NOLOCK-Sperrhinweis
Das Verwenden von Sperrhinweisen in SQL Server Compact Edition ist mit dem in SQL Server vergleichbar. Bei SQL Server Compact Edition weist der NOLOCK-Hinweis jedoch ein ganz anderes Verhalten auf als bei SQL Server. In SQL Server Compact Edition entspricht der NOLOCK-Hinweis der Standardeinstellung von SELECT-Anweisungen, wodurch jedoch weiterhin das READ COMMITTED-Verhalten erzwungen wird.
In SQL Server werden bei einer SELECT-Anweisung mit der Standardisolationsstufe READ COMMITTED Sperren vom Typ S in Zeilen eingerichtet und aufgehoben, wenn sie gelesen werden. Die Isolationsstufe wird dadurch erzwungen. Trotzdem wird von einer SELECT-Anweisung bei dem Vorhandensein einer inkompatiblen Sperre in einer Zeile gewartet, für die eine Sperre vom Typ S benötigt wird. Wird der NOLOCK-Hinweis angegeben, wird vom SELECT-Vorgang keine Sperre vom Typ S eingerichtet, und die Daten werden gelesen. Der Vorgang wird also erfolgreich ausgeführt. Allerdings können jetzt Daten ohne Commit von der SELECT-Anweisung gelesen werden.
SQL Server Compact Edition verwendet keine Sperren vom Typ S, um sicherzustellen, dass der Commit der Daten vor dem Lesevorgang ausgeführt wird (READ COMMITTED). Da von SQL Server Compact Edition ein Mechanismus zur Seitenversionsverwaltung beim Ändern von Daten verwendet wird, können die von einer SELECT-Anweisung benötigten Daten von der entsprechenden Kopie der Seiten gelesen werden. Es sind keine Sperren vom Typ S erforderlich, um die Isolationsstufe READ COMMITTED sicherzustellen. Deshalb werden die Daten auf der Isolationsstufe READ COMMITTED gelesen, obwohl von SQL Server Compact Edition NOLOCK für SELECT-Anweisungen verwendet wird. Dirty Reads (READ UNCOMMITTED) sind in SQL Server Compact Edition nicht möglich.
Hinweis: |
|---|
| Der NOLOCK-Hinweis wirkt sich nicht auf Sperren vom Typ Sch-S oder Sch-X aus. |
Siehe auch
Konzepte
Grundlegendes zu Sperren
Isolationsstufen von Transaktionen
Anzeigen von Sperrinformationen
Sperrtimeout
Wichtig: