Як виявити READ_COMMITTED_SNAPSHOT увімкнено?


130

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

Я не можу знайти простий спосіб виявити це ні в T-SQL, ні через GUI управління Studio 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рівнем ізоляції використовують блоки Shared (S) .

7
Мені подобаються "DBCC USEROPTIONS", трохи простіше запам’ятати.
ProVega

5
@ProVega - DBCC USEROPTIONS не повертає значення is_read_committed_snapshot_on.
Карстен Шютте

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

  2. Також у студії управління SQL Server, у властивостях баз даних у розділі Опції-> Різне є статус опції "Читає здійснений знімок ввімкнено"


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 , щоб отримати більше розумінь щодо питань / відповідей тут на ТАК. Ваш внесок не відповідає на запитання. Це більше коментар, який ви можете додати, як тільки ви збільшите свою репутацію: stackoverflow.com/faq#reputation
Radim Köhler

1
Відповідь гарна, оскільки вона намагається відповісти на питання "чи є спосіб?". Але тільки те, що говорити про те, що не працює, не отримає особливого прийняття.
Крістіан Стремпфер

4
Рівень ізоляції в цьому DBCC USEROPTIONSвам скаже. Якщо read committed snapshotтоді він увімкнено, інакше він вимкнеться
Грег

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