Come rilevare READ_COMMITTED_SNAPSHOT è abilitato?
-
09-06-2019 - |
Domanda
In MS SQL Server esiste un modo per rilevare se un database ha il livello di isolamento impostato 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
Soluzione
SELECT is_read_committed_snapshot_on FROM sys.databases
WHERE name= 'YourDatabase'
Valore di ritorno:
- 1:
READ_COMMITTED_SNAPSHOT
l'opzione è SU.Leggi le operazioni sotto ilREAD COMMITTED
il livello di isolamento si basa sulle scansioni degli snapshot e non acquisisce blocchi. - 0 (predefinito):
READ_COMMITTED_SNAPSHOT
l'opzione è SPENTO.Leggi le operazioni sotto ilREAD COMMITTED
utilizzo del livello di isolamento Lucchetti condivisi (S)..
Altri suggerimenti
Come da https://msdn.microsoft.com/en-us/library/ms180065.aspx, "DBCC UserOptions riporta un livello di isolamento di" lettura Snapshot impegnata "quando l'opzione del database read_Committed_SnapShot è impostato su ON e il livello di isolamento delle transazioni è impostato su" Lettura impegnata ".Il livello di isolamento effettivo viene letto con commit."
Anche in SQL Server Management Studio, nelle proprietà del database in Opzioni->Varie è presente lo stato dell'opzione "Istantanea con commit di lettura attiva"
Né su SQL2005 né sul 2012 lo fanno DBCC USEROPTIONS
spettacolo 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