sys.dm_tran_active_transactions (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics
Retorna informações sobre transações para a instância do SQL Server.
Observação
Para chamar isso do Azure Synapse Analytics ou do PDW (Analytics Platform System), use o nome sys.dm_pdw_nodes_tran_active_transactions. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.
Nome da Coluna | Tipo de Dados | Descrição |
---|---|---|
transaction_id | bigint | ID da transação no nível da instância, e não no nível do banco de dados. É exclusiva apenas em todos os bancos de dados em uma instância, mas não em todas as instâncias de servidor. |
name | nvarchar(32) | Nome da transação. O nome será substituído se a transação for marcada e o nome marcado substituirá o nome de transação. |
transaction_begin_time | datetime | Hora de início da transação. |
transaction_type | int | Tipo de transação. 1 = Transação de leitura/gravação 2 = Transação somente leitura 3 = Transação de sistema 4 = Transação distribuída |
transaction_uow | uniqueidentifier | Identificador da UOW (unidade de trabalho) da transação para transações distribuídas. O MS DTC usa o identificador UOW para trabalhar com a transação distribuída. |
transaction_state | int | 0 = A transação não foi completamente inicializada ainda. 1 = A transação foi inicializada mas não foi iniciada. 2 = A transação está ativa. 3 = A transação foi encerrada. Isso é usado para transações somente leitura. 4 = O processo de confirmação foi iniciado na transação distribuída. Destina-se somente a transações distribuídas. A transação distribuída ainda está ativa, mas não poderá mais ser realizado o processamento. 5 = A transação está em um estado preparado e aguardando resolução. 6 = A transação foi confirmada. 7 = A transação está sendo revertida. 8 = A transação foi revertida. |
transaction_status | int | Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. |
transaction_status2 | int | Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. |
dtc_state | int | Aplica-se a: Banco de Dados SQL do Azure (versão inicial até a versão atual). 1 = ACTIVE 2 = PREPARED 3 = COMMITTED 4 = ABORTED 5 = RECOVERED |
dtc_status | int | Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. |
dtc_isolation_level | int | Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. |
filestream_transaction_id | varbinary(128) | Aplica-se a: Banco de Dados SQL do Azure (versão inicial até a versão atual). Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. |
pdw_node_id | int | Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW) O identificador do nó em que essa distribuição está ativada. |
Permissões
No SQL Server e na Instância Gerenciada de SQL, requer a permissão VIEW SERVER STATE
.
Nos objetivos de serviço Básico, S0 e S1 do Banco de Dados SQL e para bancos de dados em pools elásticos, a conta de administrador do servidor, a conta de administrador do Microsoft Entra ou a ##MS_ServerStateReader##
associação na função de servidor são necessárias. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE
no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##
são necessárias.
Permissões do SQL Server 2022 e posteriores
É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Exemplos
R. Usando sys.dm_tran_active_transactions com outras DMVs para encontrar informações sobre transações ativas
O exemplo a seguir mostra todas as transações ativas no sistema e fornece informações detalhadas sobre a transação, a sessão do usuário, o aplicativo que enviou e a consulta que a iniciou e muitas outras.
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;
Confira também
sys.dm_tran_session_transactions (Transact-SQL)
sys.dm_tran_database_transactions (Transact-SQL)
Exibições e funções de gerenciamento dinâmico (Transact-SQL)
Funções e exibições de gerenciamento dinâmico relacionadas à transação (Transact-SQL)