Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Titik akhir analitik SQL di Microsoft Fabric
Gudang di Microsoft Fabric
Database SQL di Microsoft Fabric
sys.dm_tran_active_transactions Tampilan manajemen dinamis mengembalikan informasi tentang transaksi untuk instans.
| Nama kolom | Jenis Data | Deskripsi |
|---|---|---|
transaction_id |
bigint | ID transaksi di tingkat instans, bukan tingkat database. Ini hanya unik di semua database dalam instans tetapi tidak unik di semua instans server. |
name |
nvarchar(32) | Nama transaksi. Ini ditimpa jika transaksi ditandai dan nama yang ditandai menggantikan nama transaksi. |
transaction_begin_time |
datetime | Waktu transaksi dimulai. |
transaction_type |
int | Jenis transaksi. 1 = Transaksi baca/tulis 2 = Transaksi baca-saja 3 = Transaksi sistem 4 = Transaksi terdistribusi |
transaction_uow |
pengidentifikasi unik | Pengidentifikasi unit transaksi kerja (UOW) untuk transaksi terdistribusi. Koordinator transaksi terdistribusi Microsoft (MS DTC) menggunakan pengidentifikasi UOW untuk bekerja dengan transaksi terdistribusi. |
transaction_state |
int | 0 = Transaksi belum sepenuhnya diinisialisasi. 1 = Transaksi telah diinisialisasi tetapi belum dimulai. 2 = Transaksi aktif. 3 = Transaksi telah berakhir. Digunakan untuk transaksi baca-saja. 4 = Proses penerapan telah dimulai pada transaksi terdistribusi. Hanya untuk transaksi terdistribusi. Transaksi terdistribusi masih aktif tetapi pemrosesan lebih lanjut tidak dapat dilakukan. 5 = Transaksi dalam keadaan siap dan resolusi menunggu. 6 = Transaksi telah dilakukan. 7 = Transaksi sedang digulung balik. 8 = Transaksi telah digulung balik. |
transaction_status |
int | Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. |
transaction_status2 |
int | Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. |
dtc_state |
int |
Berlaku untuk: Azure SQL Database. 1 = AKTIF 2 = SIAP 3 = BERKOMITMEN 4 = DIBATALKAN 5 = DIPULIHKAN |
dtc_status |
int | Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. |
dtc_isolation_level |
int | Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. |
filestream_transaction_id |
varbinary(128) |
Berlaku untuk: Azure SQL Database. Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. |
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.
Di Microsoft Fabric, keanggotaan dalam peran ruang kerjaKontributor atau peran yang lebih istimewa diperlukan untuk mengkueri sys.dm_tran_active_transactions.
Pada tujuan layanan SQL Database Basic, S0 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.
Komentar
Untuk memanggil tampilan manajemen dinamis ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_tran_active_transactions Sintaks ini tidak didukung oleh kumpulan SQL nirserver di Azure Synapse Analytics.
Contoh
J. Gunakan sys.dm_tran_active_transactions dengan DMV lain untuk menemukan informasi tentang transaksi aktif
Contoh berikut menunjukkan transaksi aktif apa pun pada sistem. Kueri memberikan informasi terperinci tentang transaksi, sesi pengguna, aplikasi yang dikirimkan, dan kueri yang memulainya dan banyak lainnya.
SELECT
GETDATE() as now,
DATEDIFF(SECOND, transaction_begin_time, GETDATE()) as tran_elapsed_time_seconds,
st.session_id,
txt.text,
*
FROM
sys.dm_tran_active_transactions at
INNER JOIN sys.dm_tran_session_transactions st ON st.transaction_id = at.transaction_id
LEFT OUTER JOIN sys.dm_exec_sessions sess ON st.session_id = sess.session_id
LEFT OUTER JOIN sys.dm_exec_connections conn ON conn.session_id = sess.session_id
OUTER APPLY sys.dm_exec_sql_text(conn.most_recent_sql_handle) AS txt
ORDER BY
tran_elapsed_time_seconds DESC;