sys.dm_tran_transactions_snapshot (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Mengembalikan tabel virtual untuk sequence_number transaksi yang aktif saat setiap transaksi rekam jepret dimulai. Informasi yang dikembalikan oleh tampilan ini dapat membantu Anda melakukan hal berikut:

  • Temukan jumlah transaksi rekam jepret yang saat ini aktif.

  • Identifikasi modifikasi data yang diabaikan oleh transaksi rekam jepret tertentu. Untuk transaksi yang aktif ketika transaksi rekam jepret dimulai, semua modifikasi data oleh transaksi tersebut, bahkan setelah transaksi tersebut diterapkan, diabaikan oleh transaksi rekam jepret.

Misalnya, pertimbangkan output berikut dari sys.dm_tran_transactions_snapshot:

transaction_sequence_num snapshot_id snapshot_sequence_num  
------------------------ ----------- ---------------------  
59                       0           57  
59                       0           58  
60                       0           57  
60                       0           58  
60                       0           59  
60                       3           57  
60                       3           58  
60                       3           59  
60                       3           60  

Kolom transaction_sequence_num mengidentifikasi nomor urutan transaksi (XSN) dari transaksi rekam jepret saat ini. Output menunjukkan dua: 59 dan 60. Kolom snapshot_sequence_num mengidentifikasi nomor urutan transaksi transaksi yang aktif saat setiap transaksi rekam jepret dimulai.

Output menunjukkan bahwa transaksi rekam jepret XSN-59 dimulai saat dua transaksi aktif, XSN-57 dan XSN-58, sedang berjalan. Jika XSN-57 atau XSN-58 melakukan modifikasi data, XSN-59 mengabaikan perubahan dan menggunakan penerapan versi baris untuk mempertahankan tampilan database yang konsisten secara transaksional.

Transaksi rekam jepret XSN-60 mengabaikan modifikasi data yang dilakukan oleh XSN-57 dan XSN-58 dan juga XSN 59.

Tabel Dikembalikan

Nama kolom Jenis data Deskripsi
transaction_sequence_num bigint Nomor urutan transaksi (XSN) dari transaksi rekam jepret.
snapshot_id int ID rekam jepret untuk setiap pernyataan Transact-SQL dimulai di bawah penerapan baca menggunakan penerapan versi baris. Nilai ini digunakan untuk menghasilkan tampilan database yang konsisten secara transaksional yang mendukung setiap kueri yang dijalankan di bawah penerapan baca menggunakan penerapan versi baris.
snapshot_sequence_num bigint Nomor urutan transaksi transaksi yang aktif saat transaksi rekam jepret dimulai.

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.

Keterangan

Saat transaksi rekam jepret dimulai, Mesin Database merekam semua transaksi yang aktif pada saat itu. sys.dm_tran_transactions_snapshot melaporkan informasi ini untuk semua transaksi rekam jepret yang saat ini aktif.

Setiap transaksi diidentifikasi oleh nomor urutan transaksi yang ditetapkan saat transaksi dimulai. Transaksi dimulai pada saat pernyataan BEGIN TRANSACTION atau BEGIN WORK dijalankan. Namun, Mesin Database menetapkan nomor urutan transaksi dengan eksekusi pernyataan Transact-SQL pertama yang mengakses data setelah pernyataan BEGIN TRANSACTION atau BEGIN WORK. Angka urutan transaksi bertambah satu.

Lihat Juga

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