Подтвердить что ты не робот

Как обнаружить READ_COMMITTED_SNAPSHOT включен?

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

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

ТИА

4b9b3361

Ответ 1

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

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

  • 1: READ_COMMITTED_SNAPSHOT опция ВКЛ. Операции чтения под уровнем изоляции READ COMMITTED основаны на сканировании снимков и не получают блокировок.
  • 0 (по умолчанию): READ_COMMITTED_SNAPSHOT опция ВЫКЛ. Операции чтения под уровнем изоляции READ COMMITTED используют Shared (S) блокировки.

Ответ 2

  • По https://msdn.microsoft.com/en-us/library/ms180065.aspx, "DBCC USEROPTIONS сообщает об уровне изоляции" прочитанного зафиксированного моментального снимка ", когда для параметра базы данных READ_COMMITTED_SNAPSHOT установлено значение ON, а уровень изоляции транзакции установлен в" прочитанный ". Фактический уровень изоляции считывается."

  • Также в SQL Server Management Studio в свойствах базы данных в разделе "Опции- > Разное" включен статус "Включен режим чтения с включенным снимком"

Ответ 3

Ни на 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