¿Cómo detectar que READ_COMMITTED_SNAPSHOT está habilitado?
-
09-06-2019 - |
Pregunta
En MS SQL Server, ¿hay alguna manera de detectar si una base de datos tiene su nivel de aislamiento establecido mediante el comando T-SQL? ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
No puedo encontrar una manera sencilla de detectar esto ni en T-SQL ni mediante la GUI de Management Studio.
tia
Solución
SELECT is_read_committed_snapshot_on FROM sys.databases
WHERE name= 'YourDatabase'
Valor de retorno:
- 1:
READ_COMMITTED_SNAPSHOT
la opción es EN.Leer operaciones bajo elREAD COMMITTED
El nivel de aislamiento se basa en escaneos instantáneos y no adquiere bloqueos. - 0 (por defecto):
READ_COMMITTED_SNAPSHOT
la opción es APAGADO.Leer operaciones bajo elREAD COMMITTED
uso del nivel de aislamiento Cerraduras compartidas (S).
Otros consejos
según https://msdn.microsoft.com/en-us/library/ms180065.aspx, "DBCC UserOptions informa un nivel de aislamiento de 'Read Conjunta de instantáneas comprometidas' cuando la opción de base de datos se lee_committ_snapshot está configurado y el nivel de aislamiento de transacciones se establece en 'Read comedido'.El nivel de aislamiento real se lee comprometido."
También en SQL Server Management Studio, en las propiedades de la base de datos en Opciones->Varios, aparece el estado de la opción "Se ha leído la instantánea confirmada activada".
Ni en SQL2005 ni en 2012 lo hace DBCC USEROPTIONS
espectáculo 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