Come posso sapere se Isolamento istantanea è attivato?


34

In SQL Server 2005/2008, come posso sapere se Isolamento istantanea è attivato? So come attivarlo, ma non riesco a trovare l'incantesimo per ottenere google che mi dica come interrogare lo stato dell'opzione Isolamento istantanea.

Risposte:


6

fare clic con il tasto destro sulla directory dei database in Esplora oggetti e avviare powershell. digitare:
get-childitem|select name, snapshotisolationstate
e premere Invio


9
wow, il PS è davvero necessario?
Nick Kavadias,

66

Powershell, davvero? cosa c'è che non va nel buon vecchio stile T-SQL?

sys.d Database è quello che vuoi. Ha colonne descrittive leggibili come snapshot_isolation_state_desc

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

2
No, non del tutto necessario ma sto solo iniziando a studiare PS, quindi ho dato un'occhiata per vedere come si poteva fare e ho pensato di condividere ..!
Fatherjack,

per quanto odio ammetterlo, è bello
Nick Kavadias,

ad essere sincero, faccio fatica a vedere che sarà molto utile per me, abbiamo solo server 30ish. Se volessi l'isolamento dello snapshot da ogni database su ogni server, allora suppongo che PS potrebbe essere migliore di T-SQL .. per ora lo vedo solo in alternativa, lo userò qua e là mi aspetto.
Fatherjack,

Non posso modificare perché è meno di un cambio a sei caratteri, ma per altre anime confuse che copiare e incollare la query, nota che dovrebbe essere sys.database s e non sys.database.
Mark Sowul,

15

Espandendo sulla risposta dei nick dall'alto.

Di seguito verranno restituite informazioni su tutti i database

    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

O usando il codice T-SQL:

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
Questa risposta è per read_committed_snapshot, non per il livello di isolamento dello snapshot come l'OP richiesto. Sono due cose differenti.
Kevin Kalitowski,

0

Come verificare se il livello di isolamento della transazione dell'istantanea è abilitato

Per verificare se il livello di isolamento della transazione dell'istantanea è abilitato, attenersi alla seguente procedura:

  1. Avviare SQL Server Profiler.
  2. Creare una nuova traccia per connettersi all'origine dati specificata nel progetto Analysis Services.
  3. Nella finestra di dialogo Proprietà traccia , fare clic sulla scheda Selezione eventi .
  4. Nella colonna TransactionID, fare clic per selezionare le caselle di controllo nella riga per l'evento SQL: BatchCompleted e nella riga per l'evento SQL: BatchStarting.

Nota Per visualizzare la colonna TransactionID, fare clic per selezionare la casella di controllo Mostra tutte le colonne .

  1. Fare clic su Esegui per avviare la traccia.
  2. In Business Intelligence Development Studio, elaborare il progetto Analysis Services.

  3. In SQL Server Profiler, cerca gli eventi SQL: BatchCompleted e gli eventi SQL: BatchStarting che hanno lo stesso valore nella colonna TransactionID. In genere, questi eventi contengono l'istruzione SELECT nella colonna TextData. Per questi eventi, ottenere l'ID sessione nella colonna SPID.

  4. Per connettersi all'origine dati, avviare SQL Server Management Studio.

  5. Creare una nuova query e quindi eseguire la seguente istruzione Transact-SQL.

    selezionare session_id, Transaction_Isolation_Level da sys.dm_exec_sessions dove session_id =

Nota In questa affermazione, è un segnaposto per l'ID sessione ottenuto nel passaggio 7.

  1. Nella scheda Risultati , annota il valore nella colonna Transaction_Isolation_Level. Questo valore indica il livello di isolamento della transazione che si sta utilizzando nel progetto Analysis Services. Quando il livello di isolamento della transazione dell'istantanea è abilitato, il valore nella colonna Transaction_Isolation_Level è 5.

La tabella seguente mostra i valori nella colonna Transaction_Isolation_Level e i corrispondenti livelli di isolamento della transazione.

tabella che mostra i livelli di isolamento delle transazioni

https://support.microsoft.com/en-us/help/919160/how-to-enable-the-snapshot-transaction-isolation-level-in-sql-server-2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.