sys.dm_tran_current_snapshot (Transact-SQL)
Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)
Restituisce una tabella virtuale che visualizza tutte le transazioni attive al momento dell'avvio della transazione snapshot corrente. Se la transazione corrente non è una transazione snapshot, questa funzione non restituisce alcuna riga. sys.dm_tran_current_snapshot è simile a sys.dm_tran_transactions_snapshot, ad eccezione del fatto che sys.dm_tran_current_snapshot restituisce solo le transazioni attive per la transazione snapshot corrente.
Nota
Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_tran_current_snapshot. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Sintassi
sys.dm_tran_current_snapshot
Tabella restituita
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
transaction_sequence_num | bigint | Numero di sequenza della transazione attiva. |
pdw_node_id | int | Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW) Identificatore del nodo in cui è attiva la distribuzione. |
Autorizzazioni
In SQL Server e Istanza gestita di SQL è richiesta VIEW SERVER STATE
l'autorizzazione.
In database SQL obiettivi di servizio Basic, S0 e S1 e per i database nei pool elastici, è necessario l'account amministratore del server, l'account amministratore di Microsoft Entra o l'appartenenza al ruolo del ##MS_ServerStateReader##
server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE
per il database o l'appartenenza al ruolo del ##MS_ServerStateReader##
server.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW edizione Standard RVER PERFORMANCE STATE nel server.
Esempi
Nell'esempio seguente viene utilizzato uno scenario di test in cui quattro transazioni simultanee, ognuna identificata da un numero di sequenza della transazione (XSN), vengono eseguite in un database con le opzioni ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT impostate su ON. Vengono eseguite le transazioni seguenti:
XSN-57 è un'operazione di aggiornamento con isolamento serializzabile.
XSN-58 è uguale a XSN-57.
XSN-59 è un'operazione di selezione con isolamento dello snapshot.
XSN-60 è uguale a XSN-59.
Nell'ambito di XSN-59 viene eseguita la query seguente.
SELECT
transaction_sequence_num
FROM sys.dm_tran_current_snapshot;
Questo è il set di risultati.
transaction_sequence_num
------------------------
57
58
I risultati indicano che le transazioni XSN-57 e XSN-58 erano attive all'avvio della transazione snapshot XSN-59. Questi stessi risultati sono persistenti fino al termine della transazione snapshot, anche in seguito a commit o rollback di XSN-57 e XSN-58.
La stessa query viene eseguita nell'ambito di XSN-60.
Questo è il set di risultati.
transaction_sequence_num
------------------------
57
58
59
L'output per XSN-60 include le stesse transazioni riportate per XSN-59, ma anche la transazione XSN-59 che era attiva all'avvio di XSN-60.
Vedi anche
Funzioni e viste a gestione dinamica (Transact-SQL)
Funzioni e viste DMV relative alle transazioni (Transact-SQL)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per