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)