Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Devolve uma única linha que mostra a informação de estado da transação na sessão atual.
Observação
Para chamar isto de Azure Synapse Analytics ou Analytics Platform System (PDW), use o nome sys.dm_pdw_nodes_tran_current_transaction. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
Sintaxe
sys.dm_tran_current_transaction
Tabela retornada
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| transaction_id | bigint | ID da transação do snapshot atual. |
| transaction_sequence_num | bigint | Número de sequência da transação que gera a versão do registo. |
| transaction_is_snapshot | bit | Estado de isolamento de instantâneos. Este valor é 1 se a transação for iniciada sob isolamento de instantâneos. Caso contrário, o valor é 0. |
| first_snapshot_sequence_num | bigint | Número de sequência de transação mais baixo das transações que estavam ativas quando foi tirada uma captura. Na execução, uma transação snapshot tira um snapshot de todas as transações ativas nesse momento. Para transações não snapshot, esta coluna mostra 0. |
| last_transaction_sequence_num | bigint | Número de sequência global. Este valor representa o último número de sequência de transação gerado pelo sistema. |
| first_useful_sequence_num | bigint | Número de sequência global. Este valor representa o número de sequência de transação mais antigo da transação que tem versões de linha que devem ser mantidas na loja de versões. As versões da linha criadas por transações anteriores podem ser removidas. |
| pdw_node_id | int |
Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW) O identificador do nó em que esta distribuição se encontra. |
Permissions
No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.
No Banco de Dados SQL Basic, S0e S1 objetivos de serviço e para bancos de dados em pools elásticos , a conta de de administrador do servidor, a conta de de administrador do Microsoft Entra ou a associação aode função de servidor ##MS_ServerStateReader## é necessária. Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Examples
O exemplo seguinte utiliza um cenário de teste em que quatro transações concorrentes, cada uma identificada por um número de sequência de transação (XSN), estão a correr numa base de dados que tem as opções ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT definidas para ON. As seguintes transações estão a decorrer:
O XSN-57 é uma operação de atualização sob isolamento serializável.
O XSN-58 é igual ao XSN-57.
O XSN-59 é uma operação de seleção sob isolamento de instantâneos.
O XSN-60 é igual ao XSN-59.
A seguinte consulta é executada dentro do âmbito de cada transação.
SELECT
transaction_id
,transaction_sequence_num
,transaction_is_snapshot
,first_snapshot_sequence_num
,last_transaction_sequence_num
,first_useful_sequence_num
FROM sys.dm_tran_current_transaction;
Aqui está o resultado do XSN-59.
transaction_id transaction_sequence_num transaction_is_snapshot
-------------------- ------------------------ -----------------------
9387 59 1
first_snapshot_sequence_num last_transaction_sequence_num
--------------------------- -----------------------------
57 61
first_useful_sequence_num
-------------------------
57
A saída mostra que o XSN-59 é uma transação instantânea que utiliza o XSN-57 como a primeira transação ativa quando o XSN-59 começou. Isto significa que o XSN-59 lê dados comprometidos por transações que tenham um número de sequência de transação inferior ao XSN-57.
Aqui está o resultado do XSN-57.
transaction_id transaction_sequence_num transaction_is_snapshot
-------------------- ------------------------ -----------------------
9295 57 0
first_snapshot_sequence_num last_transaction_sequence_num
--------------------------- -----------------------------
NULL 61
first_useful_sequence_num
-------------------------
57
Como XSN-57 não é uma transação snapshot, first_snapshot_sequence_num é NULL.
Ver também
Visões e funções de gerenciamento dinâmico (Transact-SQL)
Visualizações e funções de gerenciamento dinâmico relacionadas à transação (Transact-SQL)