Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
La sys.dm_tran_active_transactions vista de gestión dinámica devuelve información sobre las transacciones de la instancia.
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
transaction_id |
bigint | Identificador de la transacción en el nivel de instancia, no en el de base de datos. Es solo exclusiva en todas las bases de datos dentro de una instancia, pero no es exclusiva en todas las instancias del servidor. |
name |
nvarchar(32) | Nombre de transacción. Se sobrescribe si la transacción está marcada y el nombre marcado reemplaza el nombre de transacción. |
transaction_begin_time |
datetime | Hora en que se ha iniciado la transacción. |
transaction_type |
int | Tipo de transacción. 1 = Transacciones de lectura/escritura 2 = Transacción de solo lectura 3 = Transacción de sistema 4 = Transacción distribuida |
transaction_uow |
uniqueidentifier | Identificador de la unidad de trabajo (UOW) de la transacción para transacciones distribuidas. El coordinador de transacciones distribuidas de Microsoft (MS DTC) utiliza el identificador UOW para trabajar con la transacción distribuida. |
transaction_state |
int | 0 = La transacción aún no se ha inicializado completamente. 1 = La transacción se ha inicializado pero no se ha iniciado. 2 = La transacción está activa. 3 = La transacción ha finalizado. Se usa para transacciones de solo lectura. 4 = El proceso de confirmación se ha iniciado en la transacción distribuida. Solo para transacciones distribuidas. La transacción distribuida aún está activa, pero no se puede realizar ningún otro proceso adicional. 5 = La transacción está en estado de preparada y esperando una resolución. 6 = Se ha confirmado la transacción. 7 = La transacción se está revirtiendo. 8 = Se ha revertido la transacción. |
transaction_status |
int | Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada. |
transaction_status2 |
int | Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada. |
dtc_state |
int |
Se aplica a: Azure SQL Database. 1 = ACTIVO 2 = PREPARADO 3 = COMPROMETIDO 4 = ABORTADO 5 = RECUPERADO |
dtc_status |
int | Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada. |
dtc_isolation_level |
int | Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada. |
filestream_transaction_id |
varbinary(128) |
Se aplica a: Azure SQL Database. Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada. |
pdw_node_id |
int |
Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW) Identificador del nodo en el que se encuentra esta distribución. |
Permisos
En SQL Server y SQL Managed Instance, requiere el permiso VIEW SERVER STATE.
En Microsoft Fabric, se necesita pertenencia al rol de espacio de trabajo Contribuyente o a un rol más privilegiado para consultar sys.dm_tran_active_transactions.
En los objetivos de servicio Básico, S0 y S1 de SQL Database y para bases de datos en grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador Microsoft Entra o la pertenencia al ##MS_ServerStateReader##rol del servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.
Observaciones
Para llamar a esta vista de gestión dinámica desde Azure Synapse Analytics o Analytics Platform System (PDW), utilice el nombre sys.dm_pdw_nodes_tran_active_transactions Esta sintaxis no es compatible con el servidor SQL pool en Azure Synapse Analytics.
Ejemplos
A Utiliza sys.dm_tran_active_transactions con otros DMVs para encontrar información sobre transacciones activas
El siguiente ejemplo muestra cualquier transacción activa en el sistema. La consulta proporciona información detallada sobre la transacción, la sesión de usuario, la aplicación que se envió, la consulta que la inició, entre muchas otras.
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;