Aracılığıyla paylaş


sys.dm_tran_current_transaction (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric'te SQL Veritabanı

Mevcut oturumdaki işlemin durum bilgilerini gösteren tek bir satır döndürür.

Uyarı

Bunu Azure Synapse Analytics veya Analytics Platform System (PDW) olarak adlandırmak için sys.dm_pdw_nodes_tran_current_transaction adını kullanın. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.

Sözdizimi

  
sys.dm_tran_current_transaction  

Döndürülen Tablo

Sütun adı Veri türü Description
transaction_id bigint Mevcut anlık görüntünün işlem kimliği.
transaction_sequence_num bigint Kayıt versiyonunu oluşturan işlemin sıra numarası.
transaction_is_snapshot bit Anlık izolasyon durumu. İşlem anlık izolasyon altında başlatılıyorsa bu değer 1'dir. Aksi takdirde, değer 0'dır.
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.
last_transaction_sequence_num bigint Küresel dizi numarası. Bu değer, sistem tarafından üretilen son işlem dizisi numarasını temsil eder.
first_useful_sequence_num bigint Küresel dizi numarası. Bu değer, sürüm deposunda tutulması gereken satır versiyonlarına sahip işlemin en eski işlem dizisi numarasını temsil eder. Önceki işlemlerle oluşturulan satır sürümleri kaldırılabilir.
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.

Ö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, her işlemin kapsamı içinde yürütülür.

SELECT   
    transaction_id  
   ,transaction_sequence_num  
   ,transaction_is_snapshot  
   ,first_snapshot_sequence_num  
   ,last_transaction_sequence_num  
   ,first_useful_sequence_num  
  FROM sys.dm_tran_current_transaction;  

İşte XSN-59 için sonuç.

transaction_id       transaction_sequence_num transaction_is_snapshot  
-------------------- ------------------------ -----------------------  
9387                 59                       1                         
  
first_snapshot_sequence_num last_transaction_sequence_num  
--------------------------- -----------------------------  
57                               61                        
  
first_useful_sequence_num  
-------------------------  
57  

Çıktı, XSN-59'un, XSN-59 başladığında aktif olan ilk işlem olarak XSN-57'yi kullanan bir anlık görüntü işlemi olduğunu göstermektedir. Bu, XSN-59'un, işlem dizisi numarası XSN-57'den daha küçük olan işlemler tarafından taahhüt edilen verileri okuduğu anlamına gelir.

İşte XSN-57 için sonuç.

transaction_id       transaction_sequence_num transaction_is_snapshot  
-------------------- ------------------------ -----------------------  
9295                 57                       0  
  
first_snapshot_sequence_num last_transaction_sequence_num  
--------------------------- -----------------------------  
NULL                        61  
  
first_useful_sequence_num  
-------------------------  
57  

Çünkü XSN-57 bir anlık işlem değildir, first_snapshot_sequence_num .NULL

Ayrıca Bkz.

Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
İşlemle İlgili Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)