sys.dm_tran_active_transactions (T-SQL)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)
Mengembalikan informasi tentang transaksi untuk instans SQL Server.
Catatan
Untuk memanggil 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 tanpa server di Azure Synapse Analytics.
Nama kolom | Jenis Data | Deskripsi |
---|---|---|
id_transaksi | bigint | ID transaksi di tingkat instans, bukan tingkat database. Ini hanya unik di semua database dalam instans tetapi tidak unik di semua instans server. |
nama | 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. 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. Ini digunakan untuk transaksi baca-saja. 4 = Proses penerapan telah dimulai pada transaksi terdistribusi. Ini 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 (Rilis awal melalui rilis saat ini). 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 (Rilis awal melalui rilis saat ini). 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.
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
J. Menggunakan sys.dm_tran_active_transactions dengan DMV lain untuk menemukan informasi tentang transaksi aktif
Contoh berikut menunjukkan transaksi aktif pada sistem dan 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;
Baca juga
sys.dm_tran_session_transactions (T-SQL)
sys.dm_tran_database_transactions (T-SQL)
Tampilan dan Fungsi Manajemen Dinamis (Transact-SQL)
Tampilan dan Fungsi Manajemen Dinamis Terkait Transaksi (Transact-SQL)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk