Wie kann ich feststellen, ob die Snapshot-Isolierung aktiviert ist?


34

Wie kann ich in SQL Server 2005/2008 feststellen, ob die Snapshot-Isolierung aktiviert ist? Ich weiß, wie ich es einschalten soll, aber ich kann die Beschwörung nicht finden, dass Google mir mitteilt, wie ich den Status der Snapshot-Isolationsoption abfragen soll.

Antworten:


6

Klicken Sie mit der rechten Maustaste auf das Datenbankverzeichnis im Objekt-Explorer und starten Sie Powershell. Typ:
get-childitem|select name, snapshotisolationstate
und drücken Sie die Eingabetaste


9
wow, ist die PS wirklich nötig?
— Nick Kavadias

66

Powershell, wirklich? Was ist los mit altmodischem T-SQL?

sys.databases ist was Sie wollen. Es enthält lesbare Beschreibungsspalten wie snapshot_isolation_state_desc

SELECT snapshot_isolation_state_desc from sys.databases 
where name='adventureworks'

2
Nein, das ist nicht unbedingt notwendig, aber ich fange gerade an, PS zu lernen. Also habe ich nachgesehen, wie es gemacht werden könnte, und dachte, ich würde es teilen.
— Fatherjack

So sehr ich es auch hasse, es zuzugeben, es ist cool
— Nick Kavadias

Um ehrlich zu sein, ich kämpfe darum, dass es mir sehr nützen wird. Wir haben nur 30 Server. Wenn ich die Snapshot-Isolation von jeder Datenbank auf jedem Server haben möchte, dann ist PS wahrscheinlich besser als T-SQL. Im Moment sehe ich es nur als Alternative. Ich werde es hier und da verwenden, wie ich es erwarte.
— Fatherjack

Ich kann nicht bearbeiten, da es sich um eine Änderung mit weniger als sechs Zeichen handelt. Bei anderen verwirrten Seelen, die die Abfrage kopieren und einfügen, sollte dies sys.database s und nicht sys.database sein.
— Mark Sowul

15

Erweitere die Nick-Antwort von oben.

Im Folgenden werden Informationen zu all Ihren Datenbanken zurückgegeben

    select name
        , s.snapshot_isolation_state
        , snapshot_isolation_state_desc
        , is_read_committed_snapshot_on
        , recovery_model
        , recovery_model_desc
        , collation_name
    from sys.databases s

3

Oder mit T-SQL-Code:

SELECT
'Current Isolation State:' [ ],
CASE is_read_committed_snapshot_on
        WHEN 1 THEN 'ON' ELSE 'OFF'
    END AS [Read Committed Snapsot State]
FROM sys.databases
WHERE name = 'MyDatabaseName'

2
Diese Antwort gilt für read_committed_snapshot, nicht für die Snapshot-Isolationsstufe wie das angeforderte OP. Das sind zwei verschiedene Dinge.
— Kevin Kalitowski

0

So testen Sie, ob die Snapshot-Transaktionsisolationsstufe aktiviert ist

Gehen Sie folgendermaßen vor, um zu testen, ob die Snapshot-Transaktionsisolationsstufe aktiviert ist:

  1. Starten Sie SQL Server Profiler.
  2. Erstellen Sie eine neue Ablaufverfolgung, um eine Verbindung zu der Datenquelle herzustellen, die Sie im Analysis Services-Projekt angegeben haben.
  3. Im Trace - Eigenschaften - Dialogfeld auf die Ereignisauswahl Registerkarte.
  4. Aktivieren Sie in der Spalte TransactionID die Kontrollkästchen in der Zeile für das Ereignis SQL: BatchCompleted und in der Zeile für das Ereignis SQL: BatchStarting.

Hinweis: aktivieren Sie das Show all columns Kontrolle-Kästchen, um die TransactionID-Spalte anzuzeigen .

  1. Klicken Sie auf Ausführen , um den Trace zu starten.
  2. Verarbeiten Sie in Business Intelligence Development Studio das Analysis Services-Projekt.

  3. Suchen Sie in SQL Server Profiler nach den Ereignissen SQL: BatchCompleted und nach den Ereignissen SQL: BatchStarting, die denselben Wert in der Spalte TransactionID aufweisen. In der Regel enthalten diese Ereignisse die SELECT-Anweisung in der TextData-Spalte. Beziehen Sie für diese Ereignisse die Sitzungs-ID in der Spalte SPID.

  4. Starten Sie SQL Server Management Studio, um eine Verbindung zur Datenquelle herzustellen.

  5. Erstellen Sie eine neue Abfrage, und führen Sie dann die folgende Transact-SQL-Anweisung aus.

    Wählen Sie session_id, Transaction_Isolation_Level aus sys.dm_exec_sessions, wobei session_id =

Hinweis: In dieser Anweisung ist ein Platzhalter für die Sitzungs-ID, die Sie in Schritt 7 erhalten haben.

  1. Auf der Ergebnisse Registerkarte beachten Sie den Wert in der Spalte Transaction_Isolation_Level. Dieser Wert gibt die Transaktionsisolationsstufe an, die Sie im Analysis Services-Projekt verwenden. Wenn die Snapshot-Transaktionsisolationsstufe aktiviert ist, ist der Wert in der Spalte Transaction_Isolation_Level 5.

In der folgenden Tabelle sind die Werte in der Spalte Transaction_Isolation_Level und die entsprechenden Transaktionsisolationsstufen aufgeführt.

Tabelle mit Transaktionsisolationsstufen

https://support.microsoft.com/de-de/help/919160/wie-den-Snapshot-Transaktionsisolationslevel-in-sql-server-2-aktivieren kann

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.