Вопрос

В 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) замки.

Другие советы

  1. Согласно https://msdn.microsoft.com/en-us/library/ms180065.aspx, «DBCC UserPtions сообщает об уровне изоляции« CUTHEDED SNAPHOT », когда вариант базы данных READ_COMMITTED_SNAPSHOT устанавливается на включение, а уровень изоляции транзакций установлен для« чтения совершенного ».Фактический уровень изоляции считается зафиксированным».

  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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top