Как обнаружить чтения зафиксированных данных моментального снимка включена?


в MS SQL Server Есть способ определить, установлен ли уровень изоляции базы данных с помощью команды T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

Я не могу найти простой способ обнаружить это ни в T-SQL, ни через графический интерфейс Management Studio.

ТИА

3 108

3 ответа:

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

возвращаемое значение:

  • 1: и ON. Читать операции под READ COMMITTED уровень изоляции основан на сканировании моментальных снимков и не получает блокировок.
  • 0 (по умолчанию): и выкл. Читать операции под READ COMMITTED использование уровня изоляции общие (Ы) блокировки.
  1. согласно https://msdn.microsoft.com/en-us/library/ms180065.aspx, "DBCC USEROPTIONS сообщает уровень изоляции "read committed snapshot", когда параметр базы данных READ_COMMITTED_SNAPSHOT установлен в ON, а уровень изоляции транзакций установлен в "read committed". Фактический уровень изоляции чтения зафиксированных данных."

  2. также В SQL Server Management Studio, в свойствах базы данных в разделе Параметры - > разное есть " читается Совершил моментальный снимок" состояния параметр

ни на SQL2005, ни на 2012 не делает DBCC USEROPTIONS показать 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