Condividi tramite


sys.dm_tran_top_version_generators (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

Viene restituita una tabella virtuale per gli oggetti mediante i quali viene prodotta la maggior parte delle versioni dell'archivio delle versioni. sys.dm_tran_top_version_generators restituisce le prime 256 lunghezze di record aggregate raggruppate per database_id e rowset_id. sys.dm_tran_top_version_generators recupera i dati eseguendo una query sulla tabella virtuale dm_tran_version_store. sys.dm_tran_top_version_generators è una visualizzazione inefficiente da eseguire perché questa visualizzazione esegue query sull'archivio delle versioni e l'archivio delle versioni può essere molto grande. È consigliabile utilizzare questa funzione per trovare i maggiori consumer dell'archivio delle versioni.

Nota

Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_tran_top_version_generators. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

Sintassi

  
sys.dm_tran_top_version_generators  

Tabella restituita

Nome colonna Tipo di dati Descrizione
database_id int ID del database.

In database SQL di Azure i valori sono univoci all'interno di un database singolo o di un pool elastico, ma non all'interno di un server logico.
rowset_id bigint ID del set di righe.
aggregated_record_length_in_bytes int Somma delle lunghezze dei record per ogni database_id e rowset_id coppia nell'archivio delle versioni.
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 l'autorizzazione VIEW SERVER STATE.

Negli obiettivi del servizio Basic del Database SQL, S0 e S1 e per i database nei pool elastici, è richiesto l'account amministratore del server, l'account amministratore di Microsoft Entra o l’adesione nel ##MS_ServerStateReader## al ruolo del server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'adesione ruolo del server ##MS_ServerStateReader##.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.

Osservazioni:

Poiché sys.dm_tran_top_version_generators potrebbe dover leggere molte pagine durante l'analisi dell'intero archivio delle versioni, l'esecuzione di sys.dm_tran_top_version_generators può interferire con le prestazioni del sistema.

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.

Viene eseguita la query seguente.

SELECT  
    database_id,  
    rowset_id,  
    aggregated_record_length_in_bytes  
  FROM sys.dm_tran_top_version_generators;  

Il set di risultati è il seguente.

database_id rowset_id            aggregated_record_length_in_bytes  
----------- -------------------- ---------------------------------  
9           72057594038321152    87  
9           72057594038386688    33  

L'output mostra che tutte le versioni vengono create da database_id``9 e che le versioni generate da due tabelle.

Vedi anche

Funzioni a gestione dinamica e DMV (Transact-SQL)
Funzioni e viste DMV relative alle transazioni (Transact-SQL)