Share via


sys.dm_tran_top_version_generators (Transact-SQL)

Restituisce una tabella virtuale per gli oggetti che producono la maggior parte delle versioni dell'archivio delle versioni. sys.dm_tran_top_version_generators restituisce le 256 lunghezze superiori dei record di aggregazione raggruppati per database_id e rowset_id. sys.dm_tran_top_version_generators recupera dati eseguendo una query sulla tabella virtuale dm_tran_version_store. sys.dm_tran_top_version_generators è una vista inefficienteda eseguire perché questa vista esegue una 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.

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 la scansione 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_id9 e che le versioni vengono generate da due tabelle.