sys.dm_tran_active_transactions (Transact-SQL)sys.dm_tran_active_transactions (Transact-SQL)

S’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseS’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Retourne des informations sur les transactions liées à l'instance de SQL ServerSQL Server.Returns information about transactions for the instance of SQL ServerSQL Server.

Notes

Pour appeler cette valeur à partir de Azure Synapse AnalyticsAzure Synapse Analytics ou Parallel Data WarehouseParallel Data Warehouse , utilisez le nom sys.dm_pdw_nodes_tran_active_transactions.To call this from Azure Synapse AnalyticsAzure Synapse Analytics or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_tran_active_transactions.

Nom de la colonneColumn Name Type de donnéesData Type DescriptionDescription
transaction_idtransaction_id bigintbigint ID de la transaction au niveau de l'instance, et non au niveau de la base de données.ID of the transaction at the instance level, not the database level. Cet ID est unique pour toutes les bases de données d'une instance, mais pas pour toutes les instances du serveur.It is only unique across all databases within an instance but not unique across all server instances.
namename nvarchar(32)nvarchar(32) Nom de la transaction.Transaction name. Ce nom est remplacé si la transaction est marquée et que le nom marqué remplace le nom de la transaction.This is overwritten if the transaction is marked and the marked name replaces the transaction name.
transaction_begin_timetransaction_begin_time datetimedatetime Heure de début de la transaction.Time that the transaction started.
transaction_typetransaction_type intint Type de transaction.Type of transaction.

1 = transaction en lecture/écriture1 = Read/write transaction

2 = transaction en lecture seule2 = Read-only transaction

3 = transaction système3 = System transaction

4 = transaction distribuée4 = Distributed transaction
transaction_uowtransaction_uow uniqueidentifieruniqueidentifier Identificateur de l'unité de travail de la transaction pour les transactions distribuées.Transaction unit of work (UOW) identifier for distributed transactions. MS DTC utilise cet identificateur pour agir sur la transaction distribuée.MS DTC uses the UOW identifier to work with the distributed transaction.
transaction_statetransaction_state intint 0 = La transaction n'a pas encore été complètement initialisée.0 = The transaction has not been completely initialized yet.

1 = La transaction a été initialisée mais n'a pas démarré.1 = The transaction has been initialized but has not started.

2 = La transaction est active.2 = The transaction is active.

3 = La transaction est terminée.3 = The transaction has ended. Cette valeur est utilisée pour les transactions en lecture seule.This is used for read-only transactions.

4 = Le processus de validation a été lancé sur la transaction distribuée.4 = The commit process has been initiated on the distributed transaction. Cette valeur s'applique aux transactions distribuées uniquement.This is for distributed transactions only. La transaction distribuée est toujours active, mais aucun traitement ultérieur ne peut avoir lieu.The distributed transaction is still active but further processing cannot take place.

5 = La transaction est en état préparé et attend d'être résolue.5 = The transaction is in a prepared state and waiting resolution.

6 = la transaction a été validée.6 = The transaction has been committed.

7 = La transaction est en cours de restauration.7 = The transaction is being rolled back.

8 = la transaction a été restaurée.8 = The transaction has been rolled back.
transaction_statustransaction_status intint Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.
transaction_status2transaction_status2 intint Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.
dtc_statedtc_state intint S’applique à: Azure SQL DatabaseAzure SQL Database (version initiale jusqu’à la version actuelle).Applies to: Azure SQL DatabaseAzure SQL Database (Initial release through current release).

1 = ACTIF1 = ACTIVE

2 = PRÉPARÉ2 = PREPARED

3 = VALIDÉ3 = COMMITTED

4 = ABANDONNÉ4 = ABORTED

5 = RÉCUPÉRÉ5 = RECOVERED
dtc_statusdtc_status intint Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.
dtc_isolation_leveldtc_isolation_level intint Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.
filestream_transaction_idfilestream_transaction_id varbinary(128)varbinary(128) S’applique à: Azure SQL DatabaseAzure SQL Database (version initiale jusqu’à la version actuelle).Applies to: Azure SQL DatabaseAzure SQL Database (Initial release through current release).

Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.
pdw_node_idpdw_node_id intint S’applique à: Azure Synapse AnalyticsAzure Synapse Analytics , Parallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse AnalyticsAzure Synapse Analytics, Parallel Data WarehouseParallel Data Warehouse

Identificateur du nœud sur lequel cette distribution se trouve.The identifier for the node that this distribution is on.

AutorisationsPermissions

Sur SQL ServerSQL Server , requiert l' VIEW SERVER STATE autorisation.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
Sur SQL Database objectifs de service de base, S0 et S1, et pour les bases de données dans des pools élastiques, le compte d' administrateur de serveur ou le compte d' administrateur Azure Active Directory est requis.On SQL Database Basic, S0, and S1 service objectives, and for databases in elastic pools, the server admin account or the Azure Active Directory admin account is required. Pour tous les autres SQL Database objectifs de service, l' VIEW DATABASE STATE autorisation est requise dans la base de données.On all other SQL Database service objectives, the VIEW DATABASE STATE permission is required in the database.

ExemplesExamples

R.A. Utilisation de sys.dm_tran_active_transactions avec d’autres DMV pour rechercher des informations sur les transactions activesUsing sys.dm_tran_active_transactions with other DMVs to find information about active transactions

L’exemple suivant illustre toutes les transactions actives sur le système et fournit des informations détaillées sur la transaction, la session utilisateur, l’application soumise et la requête qui l’a démarrée et bien d’autres.The following example shows any active transactions on the system and provides detailed information about the transaction, the user session, the application that submitted, and the query that started it and many others.

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;

Voir aussiSee Also

sys.dm_tran_session_transactions (Transact-SQL) sys.dm_tran_session_transactions (Transact-SQL)
sys.dm_tran_database_transactions (Transact-SQL) sys.dm_tran_database_transactions (Transact-SQL)
Fonctions et vues de gestion dynamique (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Fonctions et vues de gestion dynamique relatives aux transactions (Transact-SQL)Transaction Related Dynamic Management Views and Functions (Transact-SQL)