uncommitted transaction read permitir para niveles is_read_committed_snapshot_on instantánea example enable aislamiento sql-server isolation-level read-committed-snapshot

sql server - transaction - ¿Cómo detectar READ_COMMITTED_SNAPSHOT está habilitado?



transaction isolation level snapshot (3)

En MS SQL Server hay una manera de detectar si una base de datos ha tenido su nivel de aislamiento establecido a través del comando T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

No puedo encontrar una manera simple de detectar esto en T-SQL o a través de la GUI de Management Studio.

TIA


  1. Según https://msdn.microsoft.com/en-us/library/ms180065.aspx , "DBCC USEROPTIONS informa un nivel de aislamiento de ''leer instantánea confirmada'' cuando la opción de base de datos READ_COMMITTED_SNAPSHOT está activada y el nivel de aislamiento de transacción es configurado para ''leer confirmado''. El nivel de aislamiento real se lee confirmado ".

  2. También en SQL Server Management Studio, en las propiedades de la base de datos, en Opciones-> Varios, se muestra el estado de opción "¿Se ha confirmado la captura de imagen confirmada?"


Ni en SQL2005 ni 2012 DBCC USEROPTIONS muestra 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


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

Valor de retorno:

  • 1 : la opción READ_COMMITTED_SNAPSHOT está activada . Las operaciones de lectura bajo el nivel de aislamiento READ COMMITTED se basan en escaneos de instantáneas y no adquieren bloqueos.
  • 0 (predeterminado): la opción READ_COMMITTED_SNAPSHOT está desactivada . Las operaciones de lectura bajo el nivel de aislamiento READ COMMITTED utilizan bloqueos Compartidos (S) .