Как обнаружить READ_COMMITTED_SNAPSHOT включен?
В MS SQL Server есть способ определить, был ли у базы данных установлен уровень изоляции с помощью команды T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
Я не могу найти простой способ обнаружить это либо в T-SQL, либо через GUI Studio Management Studio.
ТИА
Ответы
Ответ 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