Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft 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;