Come rilevare READ_COMMITTED_SNAPSHOT è abilitato?


130

In MS SQL Server esiste un modo per rilevare se per un database è stato impostato il livello di isolamento tramite il comando T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

Non riesco a trovare un modo semplice per rilevarlo in T-SQL o tramite la GUI di Management Studio.

TIA

Risposte:


194
SELECT is_read_committed_snapshot_on FROM sys.databases 
WHERE name= 'YourDatabase'

Valore di ritorno:

  • 1 : l' READ_COMMITTED_SNAPSHOTopzione è ON . Le operazioni di lettura sotto il READ COMMITTEDlivello di isolamento si basano su scansioni di istantanee e non acquisiscono blocchi.
  • 0 (impostazione predefinita): l' READ_COMMITTED_SNAPSHOTopzione è OFF . Le operazioni di lettura sotto il READ COMMITTEDlivello di isolamento utilizzano i blocchi condivisi (S) .

7
Mi piace "USEROPTIONS DBCC", un po 'più facile da ricordare.
ProVega,

5
@ProVega - DBCC USEROPTIONS non restituisce il valore di is_read_committed_snapshot_on.
Carsten Schütte,

3
  1. Secondo https://msdn.microsoft.com/en-us/library/ms180065.aspx , "DBCC USEROPTIONS riporta un livello di isolamento di" lettura dello snapshot "quando l'opzione di database READ_COMMITTED_SNAPSHOT è impostata su ON e il livello di isolamento della transazione è impostato su "read commit". Il livello di isolamento effettivo viene letto commit. "

  2. Sempre in SQL Server Management Studio, nelle proprietà del database in Opzioni-> Varie è presente lo stato dell'opzione "Leggi istantanea impegnata"


1

Né su SQL2005 né 2012 DBCC USEROPTIONSmostra is_read_committed_snapshot_on:

Set Option  Value
textsize    2147483647
language    us_english
dateformat  mdy
datefirst   7
lock_timeout    -1
quoted_identifier   SET
arithabort  SET
ansi_null_dflt_on   SET
ansi_warnings   SET
ansi_padding    SET
ansi_nulls  SET
concat_null_yields_null SET
isolation level read committed

6
Per favore, prova a leggere questo stackoverflow.com/about , per avere maggiori informazioni su domande / risposte qui su SO. Il tuo contributo non risponde alla domanda. È più un commento, che puoi aggiungere una volta che aumenterai la tua reputazione: stackoverflow.com/faq#reputation
Radim Köhler

1
La risposta è ok in quanto cerca di rispondere alla domanda "c'è un modo?". Ma solo dire ciò che non funziona non otterrà molta accettazione.
Christian Strempfer,

4
Il livello di isolamento in DBCC USEROPTIONSti dice. Se è read committed snapshotallora è acceso, altrimenti è spento
Greg

@Greg: la lettura dell'istantanea impegnata è impostata a livello di database, non a livello di connessione utente. USEROPTIONS DBCC non ti dirà se è acceso o spento.
JasonS,
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.