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

¿Fue útil?

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 el READ 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 el READ COMMITTED uso del nivel de aislamiento Cerraduras compartidas (S).

Otros consejos

  1. 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."

  2. 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top