Как определить, что READ_COMMITTED_SNAPSHOT включен? - PullRequest
117 голосов
/ 09 сентября 2008

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

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

ТИА

Ответы [ 3 ]

174 голосов
/ 09 сентября 2008
SELECT is_read_committed_snapshot_on FROM sys.databases 
WHERE name= 'YourDatabase'

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

  • 1 : READ_COMMITTED_SNAPSHOT опция ON . Операции чтения с уровнем изоляции READ COMMITTED основаны на сканировании моментальных снимков и не получают блокировок.
  • 0 (по умолчанию): READ_COMMITTED_SNAPSHOT опция OFF . Операции чтения при READ COMMITTED уровне изоляции используют Общие (S) блокировки .
2 голосов
/ 10 июля 2016
  1. Согласно https://msdn.microsoft.com/en-us/library/ms180065.aspx, «DBCC USEROPTIONS сообщает об уровне изоляции« моментальный снимок чтения зафиксирован », когда для параметра базы данных READ_COMMITTED_SNAPSHOT установлено значение« ВКЛ », а уровень изоляции транзакции установлен на« зафиксировано чтение ». Фактический уровень изоляции зафиксирован для чтения.«

  2. Также в SQL Server Management Studio, в свойствах базы данных в разделе Параметры-> Разное, есть статус опции «Считано, зафиксированный снимок включен»

1 голос
/ 06 января 2014

Ни в 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
...