sys.dm_tran_current_snapshot (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
Retorna uma tabela virtual que exibe todas as transações ativas no momento em que a transação de instantâneo atual tem início. Se a transação atual não for uma transação de instantâneo, essa função não retornará nenhuma linha. sys.dm_tran_current_snapshot é semelhante ao sys.dm_tran_transactions_snapshot, exceto que sys.dm_tran_current_snapshot retorna apenas as transações ativas para a transação de instantâneo atual.
Observação
Para chamar isso do Azure Synapse Analytics ou do PDW (Analytics Platform System), use o nome sys.dm_pdw_nodes_tran_current_snapshot. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.
Sintaxe
sys.dm_tran_current_snapshot
Tabela retornada
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
transaction_sequence_num | bigint | Número de sequência de transação da transação ativa. |
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 do Banco de Dados SQL Básico, S0 e S1 e para bancos de dados em pools elásticos, é necessário ter a conta do administrador do servidor, a conta do administrador do Microsoft Entra ou a associação à ##MS_ServerStateReader##
função de servidor. 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
O exemplo a seguir usa um cenário de teste no qual quatro transações simultâneas, cada uma identificada por um XSN (número de sequência de transação), estão sendo executadas em um banco de dados no qual as opções ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT estão definidas como ON. As seguintes transações estão sendo executadas:
XSN-57 é uma operação de atualização sob o isolamento serializável.
XSN-58 é o mesmo que XSN-57.
XSN-59 é uma operação de seleção em isolamento de instantâneo.
XSN-60 é o mesmo que XSN-59.
A consulta seguinte é executada dentro do escopo de XSN-59.
SELECT
transaction_sequence_num
FROM sys.dm_tran_current_snapshot;
Veja a seguir o conjunto de resultados.
transaction_sequence_num
------------------------
57
58
Os resultados mostram que XSN-57 e XSN-58 estavam ativos no momento em que a transação de instantâneo XSN-59 teve início. Esse mesmo resultado persiste, mesmo depois que XSN-57 e XSN-58 são confirmados ou revertidos, até que a transação de instantâneo termine.
A mesma consulta é executada dentro do escopo de XSN-60.
Veja a seguir o conjunto de resultados.
transaction_sequence_num
------------------------
57
58
59
A saída para XSN-60 inclui as mesmas transações que aparecem para XSN-59, mas também inclui XSN-59, que estava ativo quando XSN-60 iniciou.
Confira também
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)