Condividi tramite


sys.dm_tran_top_version_generators (Transact-SQL)

Viene restituita una tabella virtuale per gli oggetti mediante i quali viene prodotta la maggior parte delle versioni dell'archivio delle versioni. Tramite sys.dm_tran_top_version_generators vengono restituite le prime 256 lunghezze dei record di aggregazione raggruppate per database_id e rowset_id. Tramite sys.dm_tran_top_version_generators vengono recuperati i dati eseguendo una query sulla tabella virtuale dm_tran_version_store. Non è consigliabile eseguire la vista sys.dm_tran_top_version_generators poiché tramite essa viene eseguita una query sull'archivio delle versioni le cui dimensioni possono essere molto grandi. È consigliabile utilizzare questa funzione per trovare i maggiori consumer dell'archivio delle versioni.

Sintassi

sys.dm_tran_top_version_generators

Tabella restituita

Nome colonna

Tipo di dati

Descrizione

database_id

int

ID del database.

rowset_id

bigint

ID del set di righe.

aggregated_record_length_in_bytes

int

Somma delle lunghezze dei record per ogni coppia di database_id e rowset_id nell'archivio delle versioni.

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE nel server.

Osservazioni

Poiché sys.dm_tran_top_version_generators potrebbe prevedere la lettura di numerose 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;

Set di risultati:

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

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

Vedere anche

Riferimento

Funzioni e viste a gestione dinamica (Transact-SQL)

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