Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric'te SQL Veritabanı
Bir SQL Server örneğinde, bu dinamik yönetim görünümü, satır sürümlerini oluşturan veya potansiyel olarak erişen tüm aktif işlemler için sanal bir tablo döndürür. İşlemler aşağıdaki koşullardan biri veya birkaçını için dahil edilir:
ALLOW_SNAPSHOT_ISOLATION ve READ_COMMITTED_SNAPSHOT veritabanı seçenekleri ON'a ayarlandığında:
Her işlem için bir satır vardır; bu işlem anlık izolasyon seviyesinde veya satır sürüm kullanan okuma-taahhüdü izolasyon seviyesinde çalışır.
Her işlem için bir satır vardır ve bu satır mevcut veritabanında bir satır sürümü oluşturulur. Örneğin, işlem mevcut veritabanındaki bir satırı güncelleyerek veya silerek bir satır sürümü oluşturur.
Tetikleyici ateşlendiğinde, tetikleyicinin yürütüldiği işlem için bir satır vardır.
Çevrimiçi bir indeksleme prosedürü çalışırken, indeks oluşturan işlem için bir satır vardır.
Çoklu Aktif Sonuç Setleri (MARS) oturumu etkinleştirildiğinde, her işlem için satır sürümlerine erişen bir satır vardır.
Bu dinamik yönetim görünümü sistem işlemlerini içermez.
Uyarı
Bunu Azure Synapse Analytics veya Analytics Platform System (PDW) olarak adlandırmak için sys.dm_pdw_nodes_tran_active_snapshot_database_transactions adını kullanın. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.
Sözdizimi
sys.dm_tran_active_snapshot_database_transactions
Döndürülen Tablo
| Sütun adı | Veri türü | Description |
|---|---|---|
| transaction_id | bigint | İşlem için atanmış benzersiz kimlik numarası. İşlem kimliği, öncelikle kilitleme işlemlerinde işlemi tanımlamak için kullanılır. |
| transaction_sequence_num | bigint | İşlem dizisi numarası. Bu, işlem başladığında ona atanan benzersiz bir dizi numarasıdır. Sürüm kayıtları üretmeyen ve anlık tarama kullanmayan işlemler işlem dizisi numarası almaz. |
| commit_sequence_num | bigint | İşlemin ne zaman bittiğini (commit veya stop) gösteren dizi numarası. Aktif işlemler için değer NULL'dur. |
| is_snapshot | int | 0 = Bir anlık izolasyon işlemi değildir. 1 = Bir anlık izolasyon işlemidir. |
| session_id | int | İşlemi başlatan oturumun kimliği. |
| first_snapshot_sequence_num | bigint | Bir anlık fotoğraf çekildiğinde aktif olan işlemlerin en düşük işlem dizisi numarası. Yürütme sırasında, bir anlık işlem o anda tüm aktif işlemlerin anlık görüntüsünü alır. Anlık olmayan işlemler için bu sütun 0 gösterir. |
| max_version_chain_traversed | int | İşlemsel olarak tutarlı versiyonu bulmak için geçilen sürüm zincirinin maksimum uzunluğu. |
| average_version_chain_traversed | Gerçek | Çaplı versiyon zincirlerinde geçilen ortalama sıra versiyon sayısı. |
| elapsed_time_seconds | bigint | İşlemin işlem dizisi numarasını aldığından bu yana geçen süre. |
| pdw_node_id | int |
için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW) Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı. |
Permissions
SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.
SQL Veritabanı Temel,S0 ve S1 hizmet hedeflerinive elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader##sunucu rolü üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.
SQL Server 2022 ve üzeri için izinler
Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.
Açıklamalar
sys.dm_tran_active_snapshot_database_transactions , bir işlem dizisi numarası (XSN) atanan işlemleri raporlar. XSN, işlem sürüm deposuna ilk eriştiğinde atanır. Satır sürümleme kullanılarak anlık görüntü izolasyonu veya okuma taahhüdü izolasyonu için etkinleştirilmiş bir veritabanında, örnekler bir işleme bir XSN atandığında gösterilir:
Bir işlem serileştirilebilir izolasyon seviyesinde çalışıyorsa, işlem bir satırlı sürüm oluşturulmasına neden olan UPDATE işlemi gibi bir ifadeyi ilk kez çalıştırdığında bir XSN atanır.
Bir işlem anlık izolasyon altında çalışıyorsa, herhangi bir veri işleme dili (DML) ifadesi, SELECT işlemi dahil olmak üzere, çalıştırıldığında bir XSN atanır.
İşlem dizisi numaraları, Veritabanı Motoru'nun bir örneğinde başlatılan her işlem için seri olarak artırılır.
Örnekler
Aşağıdaki örnek, her biri bir işlem dizisi numarası (XSN) ile tanımlanan dört eşzamanlı işlemin ALLOW_SNAPSHOT_ISOLATION ve READ_COMMITTED_SNAPSHOT seçeneklerinin ON olarak ayarlandığı bir veritabanında çalıştığı bir test senaryosunu kullanır. Aşağıdaki işlemler devam etmektedir:
XSN-57, serileştirilebilir izolasyon altında bir güncelleme işlemidir.
XSN-58, XSN-57 ile aynıdır.
XSN-59, anlık görüntü izolasyonu altında seçilmiş bir işlemdir
XSN-60, XSN-59 ile aynıdır.
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;
Sonuç kümesi aşağıdadır.
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 sys.dm_tran_active_snapshot_database_transactions'in sonuçlarını değerlendirir:
XSN-57: Bu işlem anlık görüntü izolasyonu altında çalışmadığı için,
is_snapshotdeğerler vefirst_snapshot_sequence_num'dir.0transaction_sequence_numbu işlem için bir işlem dizisi numarası atanmış olduğunu gösterir, çünkü veritabanı seçeneklerinden biri veya ikisi ALLOW_SNAPSHOT_ISOLATION veya READ_COMMITTED_SNAPSHOT AKILIDIR.XSN-58: Bu işlem anlık görüntü izolasyonu altında çalışmamaktadır ve XSN-57 için aynı bilgiler geçerlidir.
XSN-59: Bu, anlık görüntü izolasyonu altında çalışan ilk aktif işlemdir. Bu işlem, XSN-57'den önce taahhüt edilen verileri okur, bu veriler belirtildiği gibi
first_snapshot_sequence_num. Bu işlemin çıktısı ayrıca bir satır için geçilen maksimum sürüm zincirini1gösterir ve erişilen her satır için bir versiyonun ortalamasını1aşmıştır. Bu, XSN-57, XSN-58 ve XSN-60 işlemlerinin satırları değiştirmediği ve commit yapmadığı anlamına gelir.XSN-60: Bu, anlık görüntü izolasyonu altında çalışan ikinci işlemdir. Çıkış, XSN-59 ile aynı bilgiyi gösterir.
Ayrıca Bkz.
İŞLEM YALıTıM DÜZEYINI AYARLA (Transact-SQL)
Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
İşlemle İlgili Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)