Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d’analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
La sys.dm_tran_active_transactions vue de gestion dynamique renvoie des informations sur les transactions pour l’instance.
| Nom de la colonne | Type de données | Description |
|---|---|---|
transaction_id |
bigint | ID de la transaction au niveau de l'instance, et non au niveau de la base de données. Cet ID est unique pour toutes les bases de données d'une instance, mais pas pour toutes les instances du serveur. |
name |
nvarchar(32) | Nom de la transaction. Ce nom est remplacé si la transaction est marquée et que le nom marqué remplace le nom de la transaction. |
transaction_begin_time |
datetime | Heure de début de la transaction. |
transaction_type |
int | Type de transaction. 1 = transaction en lecture/écriture 2 = transaction en lecture seule 3 = transaction système 4 = transaction distribuée |
transaction_uow |
uniqueidentifier | Identificateur de l'unité de travail de la transaction pour les transactions distribuées. Le coordinateur des transactions distribuées Microsoft (MS DTC) utilise l’identifiant UOW pour travailler avec la transaction distribuée. |
transaction_state |
int | 0 = La transaction n'a pas encore été complètement initialisée. 1 = La transaction a été initialisée mais n’a pas commencé. 2 = La transaction est active. 3 = La transaction est terminée. Utilisé pour les transactions en lecture seule. 4 = Le processus de validation a été lancé sur la transaction distribuée. Pour les transactions distribuées uniquement. La transaction distribuée est toujours active, mais aucun traitement ultérieur ne peut avoir lieu. 5 = La transaction est en état préparé et attend d'être résolue. 6 = La transaction a été validée. 7 = La transaction est en cours de restauration. 8 = La transaction a été restaurée. |
transaction_status |
int | Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. |
transaction_status2 |
int | Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. |
dtc_state |
int |
S'applique à: Azure SQL Database. 1 = ACTIF 2 = PRÉPARÉ 3 = VALIDÉ 4 = ABANDONNÉ 5 = RÉCUPÉRÉ |
dtc_status |
int | Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. |
dtc_isolation_level |
int | Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. |
filestream_transaction_id |
varbinary(128) |
S'applique à: Azure SQL Database. Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. |
pdw_node_id |
int |
S’applique à : Azure Synapse Analytics, Analytics Platform System (PDW) Identificateur du nœud sur lequel cette distribution est activée. |
Autorisations
Sur SQL Server et SQL Managed Instance, l’autorisation VIEW SERVER STATE est requise.
Dans Microsoft Fabric, l’appartenance au rôle d’espace de travail Contributeur ou à un rôle plus privilégié est nécessaire pour interroger sys.dm_tran_active_transactions.
Sur les objectifs de service SQL Database Basic, S0 et S1, et pour les bases de données dans les pools élastiques, le compte d’administration du serveur, le compte d’administration Microsoft Entra ou l’appartenance dans ##MS_ServerStateReader## au rôle de serveur est requis. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE STATE sur la base de données ou l’appartenance au rôle serveur ##MS_ServerStateReader## est requise.
Autorisations pour SQL Server 2022 (et versions plus récentes)
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Remarques
Pour appeler cette vue de gestion dynamique depuis Azure Synapse Analytics ou Analytics Platform System (PDW), utilisez le nom sys.dm_pdw_nodes_tran_active_transactions Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.
Exemples
R. Utilisez sys.dm_tran_active_transactions avec d’autres DMV pour obtenir des informations sur les transactions actives
L’exemple suivant montre toutes les transactions actives sur le système. La requête fournit des informations détaillées sur la transaction, la session utilisateur, l’application soumise, la requête qui l’a déclenchée, ainsi que bien d’autres.
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;