sys.dm_tran_current_snapshot (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Mengembalikan tabel virtual yang menampilkan semua transaksi aktif pada saat transaksi rekam jepret saat ini dimulai. Jika transaksi saat ini bukan transaksi rekam jepret, fungsi ini tidak mengembalikan baris. sys.dm_tran_current_snapshot mirip dengan sys.dm_tran_transactions_snapshot, kecuali bahwa sys.dm_tran_current_snapshot hanya mengembalikan transaksi aktif untuk transaksi rekam jepret saat ini.

Catatan

Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_tran_current_snapshot. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Sintaks

  
sys.dm_tran_current_snapshot  

Tabel Dikembalikan

Nama kolom Jenis data Deskripsi
transaction_sequence_num bigint Nomor urutan transaksi transaksi aktif.
pdw_node_id int Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Pengidentifikasi untuk simpul tempat distribusi ini aktif.

Izin

Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE izin.

Pada tujuan layanan SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Microsoft Entra, atau keanggotaan dalam##MS_ServerStateReader## peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE pada database, atau keanggotaan dalam ##MS_ServerStateReader## peran server diperlukan.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Contoh

Contoh berikut menggunakan skenario pengujian di mana empat transaksi bersamaan, masing-masing diidentifikasi oleh nomor urutan transaksi (XSN), berjalan dalam database yang memiliki opsi ALLOW_SNAPSHOT_ISOLATION dan READ_COMMITTED_SNAPSHOT diatur ke AKTIF. Transaksi berikut berjalan:

  • XSN-57 adalah operasi pembaruan di bawah isolasi yang dapat diserialisasikan.

  • XSN-58 sama dengan XSN-57.

  • XSN-59 adalah operasi pilih di bawah isolasi rekam jepret.

  • XSN-60 sama dengan XSN-59.

Kueri berikut dijalankan dalam cakupan XSN-59.

SELECT   
    transaction_sequence_num  
  FROM sys.dm_tran_current_snapshot;  

Berikut adalah hasil yang ditetapkan.

transaction_sequence_num  
------------------------  
57  
58  

Hasilnya menunjukkan bahwa XSN-57 dan XSN-58 aktif pada saat transaksi rekam jepret XSN-59 dimulai. Hasil yang sama ini berlanjut, bahkan setelah XSN-57 dan XSN-58 melakukan atau menggulung balik, sampai transaksi rekam jepret selesai.

Kueri yang sama dijalankan dalam cakupan XSN-60.

Berikut adalah hasil yang ditetapkan.

transaction_sequence_num  
------------------------  
57  
58  
59  

Output untuk XSN-60 mencakup transaksi yang sama yang muncul untuk XSN-59, tetapi juga mencakup XSN-59, yang aktif ketika XSN-60 dimulai.

Lihat Juga

Tampilan dan Fungsi Manajemen Dinamis (Transact-SQL)
Tampilan dan Fungsi Manajemen Dinamis Terkait Transaksi (Transact-SQL)