Frage

Gibt es eine Möglichkeit WITH (NOLOCK), um auf eine bestimmte Datenbank auf jeder SELECT-Anweisung Lauf angewendet werden?

War es hilfreich?

Lösung

Nein, aber Sie können die Snapshot Isolation Datenbankebene auf SQL Server 2005 und höher, sollte es viel mit Deadlocks

Hilfe

SQL Server 2005 führen Erweiterungen der SQL-92-Isolationsstufen mit der Einführung der Snapshot-Isolationsstufe und eine zusätzlichen Implementierung von READ COMMITTED. Die neue READ_COMMITTED_SNAPSHOT Isolationsstufe kann transparent ersetzen READ für alle Geschäfte abgeschlossen.

Snapshot-Isolation gibt an, dass die Daten innerhalb einer Transaktion gelesen wird reflektieren nie durch andere gleichzeitige Transaktionen vorgenommen wurden. Die Transaktion verwendet die Daten Zeilenversionen, die vorhanden sind, wenn die Transaktion beginnt. Es werden keine Sperren auf den Daten gestellt, wenn er gelesen wird, so SNAPSHOT-Transaktionen aus Schreiben von Daten keine andere Transaktionen blockieren. Transaktionen, die Schreibdaten keine Snapshot-Transaktionen von Lesen von Daten blockieren. Sie müssen durch Einstellen der ALLOW_SNAPSHOT_ISOLATION Datenbank-Option, um es zu benutzen, die Snapshot-Isolation ermöglichen.

Die READ_COMMITTED_SNAPSHOT Datenbank-Option bestimmt das Verhalten des Standard COMMITTED Isolationsstufe, wenn die Snapshot-Isolation in einer Datenbank aktiviert ist. Wenn Sie nicht explizit READ_COMMITTED_SNAPSHOT ON angeben, VERPFLICHTET READ für alle impliziten Transaktionen angewendet wird. Dadurch ergibt sich das gleiche Verhalten wie Einstellung READ_COMMITTED_SNAPSHOT OFF (Standardeinstellung). Wenn READ_COMMITTED_SNAPSHOT OFF in Kraft ist, gemeinsame Sperren der Datenbank-Engine verwendet die Standardisolationsstufe zu erzwingen. Wenn Sie die READ_COMMITTED_SNAPSHOT Datenbankoption auf ON gesetzt, Reihe der Datenbank-Engine verwendet Versionierung und Snapshot-Isolation als Standard statt Sperren der Verwendung der Daten zu schützen.

Andere Tipps

Abhängig von Ihrer Datenbank. Einige Datenbank-Engines können Sie auf Standard zu schmutzig liest oder ähnliche Verhaltensweisen.

Beispiel, einige MSSQL Server-Versionen können Sie die Datenbank als Snapshot-Isolation zu gründen, die in SQLMenace der Post beschrieben wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top