Aracılığıyla paylaş


sys.dm_tran_active_transactions (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Dinamik yönetim görünümü, sys.dm_tran_active_transactions örnek için işlemlerle ilgili bilgileri döndürür.

Sütun Adı Veri Türü Description
transaction_id bigint İşlemin kimliği veritabanı düzeyinde değil, örnek düzeyinde. Yalnızca bir örnek içindeki tüm veritabanlarında benzersizdir, ancak tüm sunucu örneklerinde benzersiz değildir.
name nvarchar(32) İşlem adı. İşlem işaretlenmişse ve işaretlenmiş isim işlem adının yerini alırsa bu işlem üzerine yazılır.
transaction_begin_time datetime İşlemin başladığı zaman.
transaction_type int İşlem türü.

1 = Okuma/yazma işlemi

2 = Yalnızca okunabilir işlem

3 = Sistem işlemi

4 = Dağıtık işlem
transaction_uow uniqueidentifier Dağıtık işlemler için işlem birimi (UOW) tanımlayıcısı. Microsoft dağıtık işlem koordinatörü (MS DTC), dağıtık işlemle çalışmak için UOW tanımlayıcısını kullanır.
transaction_state int 0 = İşlem henüz tamamen başlatılmamıştır.

1 = İşlem başlatıldı ancak başlatılmadı.

2 = İşlem aktiftir.

3 = İşlem sona erdi. Sadece okunabilir işlemler için kullanılır.

4 = Dağıtık işlem üzerinde commit süreci başlatılmıştır. Sadece dağıtık işlemler için. Dağıtık işlem hâlâ aktiftir ancak daha fazla işlem yapılamaz.

5 = İşlem hazırlanmış durumda ve çözüm bekliyor.

6 = İşlem yapıldı.

7 = İşlem geri alınıyor.

8 = İşlem geri alındı.
transaction_status int Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir.
transaction_status2 int Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir.
dtc_state int Şunlar için geçerlidir: Azure SQL Veritabanı.

1 = AKTIF

2 = HAZIRLANMIŞTIR

3 = TAAHMIN EDILDI

4 = IPTAL EDILDI

5 = KURTARILDI
dtc_status int Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir.
dtc_isolation_level int Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir.
filestream_transaction_id varbinary(128) Şunlar için geçerlidir: Azure SQL Veritabanı.

Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir.
pdw_node_id int için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW)

Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı.

Permissions

SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.

Microsoft Fabric'te, sorgulamak sys.dm_tran_active_transactionsiçin Katkıda Bulunançalışma alanı rolünde veya daha ayrıcalıklı bir rol üyesi olmak gerekir.

SQL Veritabanı Temel,S0 ve S1 hizmet hedeflerinive elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader##sunucu rolü üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.

SQL Server 2022 ve üzeri için izinler

Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Açıklamalar

Azure Synapse Analytics veya Analytics Platform System (PDW)'den bu dinamik yönetim görünümünü çağırmak için şu adı sys.dm_pdw_nodes_tran_active_transactions kullanın: Bu sözdizimi Azure Synapse Analytics'te sunucusuz SQL havuzu tarafından desteklenmez.

Örnekler

A. Aktif işlemler hakkında bilgi bulmak için diğer DMV'lerle sys.dm_tran_active_transactions kullanın

Aşağıdaki örnek, sistemdeki aktif işlemleri gösterir. Sorgu, işlem, kullanıcı oturumu, gönderen uygulama ve onu başlatan sorgu ile daha birçok konu hakkında ayrıntılı bilgi sağlar.

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;