Как определить, что READ_COMMITTED_SNAPSHOT включен?


130

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

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

ТИА

Ответы:


194
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) блокировки .

7
Мне нравится "DBCC USEROPTIONS", который немного легче запомнить.
ProVega

5
@ProVega - DBCC USEROPTIONS не возвращает значение is_read_committed_snapshot_on.
Carsten Schütte

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

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


1

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

6
Пожалуйста, попробуйте прочитать этот stackoverflow.com/about , чтобы получить больше информации о вопросах / ответах здесь, на SO. Ваш вклад не отвечает на вопрос. Это скорее комментарий, который вы можете добавить, когда повысите свою репутацию: stackoverflow.com/faq#reputation
Радим Кёлер

1
Ответ нормальный, поскольку он пытается ответить на вопрос «есть ли выход?». Но только сказать, что не работает, не получит большого признания.
Кристиан Стремпфер

4
Об этом DBCC USEROPTIONSвам говорит уровень изоляции . Если он, read committed snapshotто он включен, иначе он выключен
Грег

@Greg - моментальный снимок зафиксированного чтения устанавливается на уровне базы данных, а не на уровне подключения пользователя. DBCC USEROPTIONS не сообщит вам, включен он или нет.
JasonS
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.