Як я можу дізнатися, чи включена ізоляція знімка?


34

Як в SQL Server 2005/2008 дізнатись, чи включена ізоляція знімка? Я знаю, як його ввімкнути, але я не можу знайти заклик отримати Google, щоб підказати, як запитувати стан параметра "Ізольована знімка".

Відповіді:


6

клацніть правою кнопкою миші по каталогу баз даних в провіднику об'єктів і запустіть shellhell. введіть:
get-childitem|select name, snapshotisolationstate
і натисніть return


9
вау, чи дійсно потрібен PS?
Нік Кавадіас

66

Powershell, справді? що не так з хорошим T-SQL, який пройшов мод?

sys.databases - це те, що ви хочете. Він має читані людиною стовпці з описом, як snapshot_isolation_state_desc

SELECT snapshot_isolation_state_desc from sys.databases 
where name='adventureworks'

2
Ні, не цілком потрібно, але я тільки починаю вивчати ПС, тому я подивився, як це можна зробити, і подумав, що поділюсь!
Батьківщина

наскільки я ненавиджу це визнати, це круто
Нік Кавадіас

чесно кажучи, я намагаюся бачити, що це буде мені дуже корисно, у нас є лише 30-ти сервер. Якщо я хотів виділити знімок з кожної бази даних на кожному сервері, то, мабуть, PS може бути кращим, ніж T-SQL .. поки що я бачу це як альтернативу, я буду використовувати його тут і там, на який я очікую.
Батьківщина

Я не можу редагувати, оскільки це менше шести символьної зміни, але для інших заплутаних душ, які копіюють та вставляють запит, зверніть увагу, що це має бути sys.database s, а не sys.database.
Марк Совул

15

Розгортається на відповідь ніків зверху ..

Нижче наведено інформацію про всі ваші бази даних

    select name
        , s.snapshot_isolation_state
        , snapshot_isolation_state_desc
        , is_read_committed_snapshot_on
        , recovery_model
        , recovery_model_desc
        , collation_name
    from sys.databases s

3

Або використовуючи код T-SQL:

SELECT
'Current Isolation State:' [ ],
CASE is_read_committed_snapshot_on
        WHEN 1 THEN 'ON' ELSE 'OFF'
    END AS [Read Committed Snapsot State]
FROM sys.databases
WHERE name = 'MyDatabaseName'

2
Ця відповідь призначена для read_committed_snapshot, а не для рівня ізоляції знімка, як запитувала ОП. Це дві різні речі.
Кевін Калітовський

0

Як перевірити, чи ввімкнено рівень ізоляції транзакцій

Щоб перевірити, чи включений рівень ізоляції транзакцій, виконайте наступні дії:

  1. Запустіть програму SQL Server Profiler.
  2. Створіть новий слід для підключення до джерела даних, який ви вказали в проекті Services Services.
  3. У діалоговому вікні " Властивості слідів " натисніть Вибір подій вкладку « ».
  4. У стовпці TransactionID натисніть, щоб встановити прапорці в рядку для події SQL: BatchCompleted та в рядку для події SQL: BatchStarting.

Примітка Щоб відобразити стовпець TransactionID, установіть прапорець Показувати всі стовпці .

  1. Клацніть Виконати щоб почати трасування.
  2. У студії розвитку бізнес-аналітики опрацюйте проект служби Аналіз.

  3. У програмі SQL Server Profiler шукайте події SQL: BatchCompleted та події SQL: BatchStarting, які мають однакове значення у стовпці TransactionID. Зазвичай ці події містять оператор SELECT у стовпці TextData. Для цих подій отримайте ідентифікатор сеансу в стовпці SPID.

  4. Для підключення до джерела даних запустіть SQL Server Management Studio.

  5. Створіть новий запит та запустіть наступний оператор Transact-SQL.

    виберіть session_id, Transaction_Isolation_Level з sys.dm_exec_sesions, де session_id =

Примітка У цьому твердженні є заповнювачем місця для ідентифікатора сеансу, який ви отримали на кроці 7.

  1. На вкладці Результати відзначте значення у стовпці Transaction_Isolation_Level. Це значення вказує на рівень ізоляції транзакцій, який ви використовуєте в проекті Services Services. Коли рівень ізоляції транзакцій увімкнено, значення в стовпці Transaction_Isolation_Level дорівнює 5.

У наступній таблиці показані значення в стовпці Transaction_Isolation_Level та відповідні рівні ізоляції транзакцій.

таблиця із рівнем ізоляції транзакцій

https://support.microsoft.com/en-us/help/919160/how-to-enable-the-snapshot-transaction-isolation-level-in-sql-server-2

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