sys.dm_tran_transactions_snapshot (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure 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)