Как определить, что READ_COMMITTED_SNAPSHOT включен?
В MS SQL Server есть способ определить, был ли уровень изоляции базы данных установлен с помощью команды T-SQL ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
Я не могу найти простой способ обнаружить это ни в T-SQL, ни в графическом интерфейсе Management Studio.
ТИА
3 ответа
SELECT is_read_committed_snapshot_on FROM sys.databases
WHERE name= 'YourDatabase'
Возвращаемое значение:
- 1:
READ_COMMITTED_SNAPSHOT
опция включена. Операции чтения подREAD COMMITTED
уровень изоляции основан на снимках и не блокируется. - 0 (по умолчанию):
READ_COMMITTED_SNAPSHOT
опция выключена. Операции чтения подREAD COMMITTED
уровень изоляции используют общие (S) замки.
Согласно https://msdn.microsoft.com/en-us/library/ms180065.aspx, "DBCC USEROPTIONS сообщает об уровне изоляции" зафиксированный моментальный снимок чтения ", когда для параметра базы данных READ_COMMITTED_SNAPSHOT установлено значение ON, а уровень изоляции транзакции - установите "чтение зафиксировано". Фактический уровень изоляции - чтение зафиксировано. "
Кроме того, в 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