sys.dm_tran_active_snapshot_database_transactions (Transact-SQL)

' De bir SQL Server örnek olarak, bu dinamik yönetim görünümü oluşturmak veya satır sürümü büyük olasılıkla tüm etkin işlemler için sanal bir tablo döndürür. Hareketleri bir veya daha çok aşağıdaki koşullardan biri için eklenmiştir:

  • Birini veya her ikisini ALLOW_SNAPSHOT_ISOLATION ve READ_COMMITTED_SNAPSHOT veritabanı seçeneklerini ON olarak ayarlandığında:

    • Anlık görüntü yalıtım düzey veya satır sürüm oluşturmayı kullanarak okundu olarak kaydedilmiş bir yalıtım düzey altında çalışan her işlem için bir satır vardır.

    • Bir satır sürüm geçerli veritabanında oluşturulmasına neden olan her hareket için bir satır vardır.Örneğin, güncelleştirme veya geçerli veritabanında bir satır silme satır sürüm hareket oluşturur.

  • Bir tetiği harekete geçirilir, tetikleyici yürütülüyor altında hareket için bir satır vardır.

  • Çevrimiçi bir dizin oluşturma yordamını çalıştırırken, dizin oluşturma hareket için bir satır vardır.

  • Birden çok Active sonuçlar kümesi (MARS) oturum etkin olduğunda, satır sürümleri eriştiği her hareket için bir satır vardır.

Bu dinamik yönetim görünümü, sistem işlemlerindeki içermez.

sys.dm_tran_active_snapshot_database_transactions

Dönen Tablo

sütun Name

Veri türü

Açıklama

transaction_id

bigint

Hareket için atanan benzersiz tanımlama numarası.Hareket KODU, öncelikle, işlem kilitleme işlemi tanımlamak için kullanılır.

transaction_sequence_num

bigint

Hareketin sıra numarası.Bu başlatıldığında, bir işlem için atanan benzersiz bir seri numarasıdır.Sürüm kayıtlar oluşturmak ve anlık görüntü görüntü taramaları kullanmayın hareketleri bir işlem sıra numarası almazsınız.Daha fazla bilgi için bkz: Satır Güncelleştirme-based yalıtım düzeyleri anlama.

commit_sequence_num

bigint

Sıra numarası ne zaman hareket (iptalleri veya durur) tamamlanır gösterir.Etkin işlemler için değer NULL olur.

is_snapshot

int

0 = anlık görüntü görüntü bir yalıtım işlem değil.

1 = anlık görüntü görüntü bir yalıtım hareket mi.

session_id

int

Hareketin başlatıldığı oturumun KIMLIĞI.

first_snapshot_sequence_num

bigint

anlık görüntü görüntü çekilirken etkin hareketleri en düşük işlem sırası numarası.Yürütme üzerinde bir anlık görüntü hareketi, o anda anlık görüntü görüntü görüntüsünü tüm etkin işlemler alır.Bu sütun, nonsnapshot hareketlerinde 0 gösterir.

max_version_chain_traversed

int

Işlem tutarlı sürümünü bulmak için geçiş sürüm zincirdeki en fazla uzunluğu.

average_version_chain_traversed

real

Satır, geçiş sürüm zincirlerini sürümleri ortalama sayısı.

elapsed_time_seconds

bigint

Hareket, işlem sıra numarası alınan bu yana geçen saat.

İzinler

Sunucudaki SUNUCU DURUM VIEW iznine gerek duyar.

Remarks

sys.dm_tran_active_snapshot_database_transactions hareketin sıra numarası (XSN) atanmış olan hareketleri bildirir.Sürüm deposu işlem ilk kez eriştiğinde XSN atanır.anlık görüntü görüntü yalıtım için etkinleştirilmiş veya satır sürümü kullanılarak, kaydedilmiş yalıtım okuma bir veritabanında, bir hareket için bir XSN atanan zaman örnekleri göster:

  • Işlem seri hale getirilebilir yalıtım düzey altında çalışıyorsa, işlem ilk oluşturulması için bir satır sürüm neden olan bir UPDATE işlemi gibi bir deyim yürütüldüğünde bir XSN atanır.

  • Bir işlem anlık görüntü görüntü yalıtım altında çalışıyorsa, bir SELECT işlemi de dahil olmak üzere tüm veri işleme Dil (DML) deyim yürütüldüğünde bir XSN atanır.

Işlem sıra numaralarını örnek başlatıldığında her hareket için seri olarak artırılır Database Engine.

Işlem sırası numaraları hakkında daha fazla bilgi için bkz: Satır Güncelleştirme-based yalıtım düzeyleri anlama.

Örnekler

Aşağıdaki örnek dört eşzamanlı hareketler, her bir hareketin sıra numarası (XSN) tarafından tanımlanan ALLOW_SNAPSHOT_ISOLATION ve READ_COMMITTED_SNAPSHOT seçenekleri ON olarak küme olan bir veritabanında çalıştırdığınız bir sınama senaryosu kullanır.Aşağıdaki işlemler çalıştırıyorsanız:

  • XSN 57 seri hale getirilebilir yalıtım altında bir güncelleştirme işlemidir.

  • XSN 58 XSN 57 ile aynıdır.

  • Bir seçme işlemdir anlık görüntü görüntü yalıtım altında XSN-59

  • XSN 60 aynı XSN-59 olarak.

Aşağıdaki sorgu yürütülür.

SELECT 
    transaction_id,
    transaction_sequence_num,
    commit_sequence_num,
    is_snapshot session_id,
    first_snapshot_sequence_num,
    max_version_chain_traversed,
    average_version_chain_traversed,
    elapsed_time_seconds
  FROM sys.dm_tran_active_snapshot_database_transactions;

Here is the result set.

transaction_id  transaction_sequence_num  commit_sequence_num
--------------  ------------------------  -------------------
9295            57                        NULL
9324            58                        NULL
9387            59                        NULL
9400            60                        NULL

is_snapshot  session_id   first_snapshot_sequence_num
-----------  -----------  ---------------------------
0            54           0
0            53           0
1            52           57
1            51           57

max_version_chain_traversed  average_version_chain_traversed
---------------------------  -------------------------------
0                            0
0                            0
1                            1
1                            1

elapsed_time_seconds
--------------------
419
397
359
333

Aşağıdaki bilgiler sonuçlar değerlendirir. sys.dm_tran_active_snapshot_database_transactions:

  • xsn 57: Because this transaction is not running under snapshot isolation, the is_snapshot value and first_snapshot_sequence_num are 0.transaction_sequence_num shows that a transaction sequence number has been assigned to this transaction, because one or both ALLOW_SNAPSHOT_ISOLATION or READ_COMMITTED_SNAPSHOT database options are ON.

  • XSN-58: Bu işlem anlık görüntü görüntü yalıtım altında çalışan ve aynı bilgiler XSN 57 için geçerlidir.

  • XSN-59: Anlık görüntü yalıtım altında çalıştığı ilk etkin hareket budur. Bu işlem tarafından belirtildiği şekilde XSN 57 önce kaydedilmiş verileri okur. first_snapshot_sequence_num. Çıkış hareketi için de bir satır için geçiş en yüksek sürüm zincirdeki gösterir 1 ve ortalama geçiş 1 erişilen her satır için sürümü. Bu hareketleri XSN 57 XSN 58 ve XSN 60 olmayan satır değiştirilmiş ve kaydedilmiş anlamına gelir.

  • XSN-60: Bu anlık görüntü yalıtım altında çalışan ikinci hareketidir. Çıktı XSN 59 aynı bilgileri gösterir.