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