sys.dm_tran_current_transaction (T-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Mengembalikan satu baris yang menampilkan informasi status transaksi dalam sesi saat ini.
Catatan
Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_tran_current_transaction. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.
Sintaks
sys.dm_tran_current_transaction
Tabel Dikembalikan
Nama kolom | Jenis data | Deskripsi |
---|---|---|
transaction_id | bigint | ID transaksi rekam jepret saat ini. |
transaction_sequence_num | bigint | Nomor urut transaksi yang menghasilkan versi rekaman. |
transaction_is_snapshot | bit | Status isolasi rekam jepret. Nilai ini adalah 1 jika transaksi dimulai di bawah isolasi rekam jepret. Jika tidak, nilainya adalah 0. |
first_snapshot_sequence_num | bigint | Jumlah urutan transaksi terendah dari transaksi yang aktif saat rekam jepret diambil. Pada eksekusi, transaksi rekam jepret mengambil rekam jepret dari semua transaksi aktif pada saat itu. Untuk transaksi nonsnapshot, kolom ini menunjukkan 0. |
last_transaction_sequence_num | bigint | Nomor urut global. Nilai ini menunjukkan nomor urutan transaksi terakhir yang dihasilkan oleh sistem. |
first_useful_sequence_num | bigint | Nomor urut global. Nilai ini menunjukkan nomor urutan transaksi terlama dari transaksi yang memiliki versi baris yang harus dipertahankan di penyimpanan versi. Versi baris yang dibuat oleh transaksi sebelumnya dapat dihapus. |
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 setiap transaksi.
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;
Berikut adalah hasil untuk XSN-59.
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
Output menunjukkan bahwa XSN-59 adalah transaksi rekam jepret yang menggunakan XSN-57 sebagai transaksi pertama yang aktif ketika XSN-59 dimulai. Ini berarti bahwa XSN-59 membaca data yang dilakukan oleh transaksi yang memiliki nomor urutan transaksi yang lebih rendah dari XSN-57.
Berikut adalah hasil untuk XSN-57.
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
Karena XSN-57 bukan transaksi rekam jepret, first_snapshot_sequence_num
adalah NULL
.
Lihat Juga
Tampilan dan Fungsi Manajemen Dinamis (Transact-SQL)
Tampilan dan Fungsi Manajemen Dinamis Terkait Transaksi (Transact-SQL)