Anlık Görüntü İzolasyonunun açık olup olmadığını nasıl anlarım?


34

SQL Server 2005 / 2008'de, Anlık Görüntü İzolasyonunun açık olup olmadığını nasıl anlarım? Biliyorum nasıl açmak için, ama büyü nasıl Anlık İzolasyon seçeneği durumunu sorgulamak için söyle google almak için bulamıyorum.

Yanıtlar:


6

nesne gezgininde veritabanı dizinine sağ tıklayın ve powershell'i başlatın. şunu yazın:
get-childitem|select name, snapshotisolationstate
ve return tuşuna basın


9
Vay, PS gerçekten gerekli mi?
Nick Kavadias

66

Powershell, gerçekten mi? iyi ol moda T-SQL ile yanlış olan ne?

sys.databases istediğiniz şeydir. Snapshot_isolation_state_desc gibi okunabilir insan açıklama sütunlarına sahiptir

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

2
Hayır, tamamen gerekli değil ama sadece PS öğrenmeye başlıyorum, bu yüzden nasıl yapılabileceğini ve paylaşacağımı düşündüğüm bir göz attım ..!
Fatherjack

itiraf etmekten nefret ediyorum kadar, çok güzel
Nick Kavadias

dürüst olmak gerekirse, onun bana çok faydası olacağını görmek için uğraşıyorum, sadece 30ish sunucularımız var. Her sunucudaki her veritabanından anlık görüntü yalıtımı istiyorsam, o zaman PS'in T-SQL'den daha iyi olabileceğini düşünüyorum .. şimdilik onu alternatif olarak görüyorum, burada ve orada bekleyeceğim.
Fatherjack

Altı karakterlik bir değişiklikten küçük olduğu için düzenleme yapamıyorum, ancak sorguyu kopyalayıp yapıştıran diğer karışık ruhlar için sys.database değil sys.database s olması gerektiğini unutmayın .
Mark Sowul

15

Nicks uzayan yukarıdan tepki ..

Aşağıdakiler tüm veritabanlarınız hakkında bilgi verecektir.

    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

Veya T-SQL kodunu kullanarak:

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
Bu cevap, istenen OP gibi Enstantane İzolasyon Seviyesi için değil, read_committed_snapshot içindir. Onlar iki farklı şey.
Kevin Kalitowski

0

Anlık görüntü işlem düzeyinin etkin olup olmadığını sınama

Anlık görüntü işlem düzeyinin etkin olup olmadığını test etmek için şu adımları izleyin:

  1. SQL Server Profiler'ı başlatın.
  2. Analysis Services projesinde belirttiğiniz veri kaynağına bağlanmak için yeni bir izleme oluşturun.
  3. In Izleme özellikleri iletişim kutusunda, tıklayın Olaylar Seçim sekmesini.
  4. TransactionID sütununda, SQL: BatchCompleted olayı satırında ve SQL: BatchStarting olayı satırındaki onay kutularını tıklatarak seçin.

Not İşlem Kimliği sütununu görüntülemek için Tüm sütunları göster onay kutusunu tıklatarak seçin .

  1. İzi başlatmak için Çalıştır'a tıklayın .
  2. Business Intelligence Development Studio'da, Analiz Hizmetleri projesini işleyin.

  3. SQL Server Profilcisi'nde, SQL: BatchCompleted olaylarını ve TransactionID sütununda aynı değere sahip SQL: BatchStarting olaylarını arayın. Genellikle, bu olaylar TextData sütununda SELECT ifadesini içerir. Bu olaylar için, SPID sütununda oturum kimliğini alın.

  4. Veri kaynağına bağlanmak için SQL Server Management Studio'yu başlatın.

  5. Yeni bir sorgu oluşturun ve aşağıdaki Transact-SQL deyimini çalıştırın.

    sys.dm_exec_sessions arasından session_id, Transaction_Isolation_Level öğesini seçin.

Not Bu ifadede, 7. adımda edindiğiniz oturum kimliği için bir yer tutucudur.

  1. On Sonuçlar sekmesi, transaction_isolation_level sütunundaki değeri not edin. Bu değer, Analiz Hizmetleri projesinde kullandığınız işlem yalıtım düzeyini gösterir. Anlık görüntü işlem yalıtım düzeyi etkinleştirildiğinde, Transaction_Isolation_Level sütunundaki değer 5'tir.

Aşağıdaki tabloda Transaction_Isolation_Level sütunundaki değerler ve karşılık gelen işlem yalıtım seviyeleri gösterilmektedir.

işlem izolasyon seviyelerini gösteren tablo

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.