Ermitteln der Standardisolationsstufe in SQL Server 2017 und Azure SQL DB


9

Ich lese ein Buch über Transaktionen und Parallelität. In einem Absatz wird erwähnt, dass:

  • In der lokalen SQL Server-Instanz ist die Standardisolationsstufe Read-Committed basierend auf dem Sperren

Und der nächste Satz lautet:

  • Die Standardeinstellung in der SQL-Datenbank ist "Lesen - festgeschriebener Snapshot basierend auf der Zeilenversionierung"

Meine Frage ist: Was ist der Unterschied zwischen "Lokale SQL Server-Instanz" und "SQL-Datenbank" in diesen beiden Sätzen?

Was ist die Standardisolationsstufe und wie kann ich sie finden? Gibt es eine spezielle Abfrage, um die Standardisolationsstufe herauszufinden?

Antworten:


13

Es bezieht sich auf die Azure SQL-Datenbank, die standardmäßig RCSI verwendet .

Isolationsstufe SQL

Die datenbankweite Standardeinstellung für die Datenbank besteht darin, die RCSI (Read Commit Snapshot Isolation) zu aktivieren, indem die Datenbankoptionen READ_COMMITTED_SNAPSHOT und ALLOW_SNAPSHOT_ISOLATION auf ON gesetzt sind. Weitere Informationen zu Isolationsstufen finden Sie hier . Sie können die Standardisolationsstufe der Datenbank nicht ändern. Sie können die Isolationsstufe jedoch explizit für eine Verbindung steuern.

In lokalem SQL Server ist die Standardisolationsstufe Read Committed.

Das Finden der "Standard" -Isolationsstufe ist eine Art Gänsejagd. Dies hängt von der Datenbank ab, von der aus eine Abfrage initiiert wird, und davon, ob in der Abfrage Hinweise zum Überschreiben einer Einstellung auf Datenbankebene vorhanden sind.

Sie können jedoch abfragen sys.databases, ob RCSI oder SI aktiviert ist.

SELECT d.name, 
       d.is_read_committed_snapshot_on, 
       d.snapshot_isolation_state
FROM sys.databases AS d;

Beachten Sie, dass READ_COMMITTED_SNAPSHOTdies technisch gesehen keine Isolationsstufe ist. Es handelt sich vielmehr um eine Datenbankoption, die die Implementierung so steuert, dass die Zeilenversionierung anstelle der Sperrung verwendet wird, um die Lesekonsistenz für Sitzungen mit der READ_COMMITTEDIsolationsstufe zu gewährleisten .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.