Applies To: SQL Server 2014, SQL Server 2016 Preview
Topic Status: Some information in this topic is preview and subject to change in future releases. Preview information describes new features or changes to existing features in Microsoft SQL Server 2016 Community Technology Preview 2 (CTP2).
Returns a virtual table for the objects that are producing the most versions in the version store. sys.dm_tran_top_version_generators returns the top 256 aggregated record lengths that are grouped by the database_id and rowset_id. sys.dm_tran_top_version_generators retrieves data by querying the dm_tran_version_store virtual table. sys.dm_tran_top_version_generators is an inefficient view to run because this view queries the version store, and the version store can be very large. We recommend that you use this function to find the largest consumers of the version store.
Applies to: SQL Server (SQL Server 2008 through current version), SQL Database V12, Azure SQL Data Warehouse Public Preview.
To call this from SQL Data Warehouse, use the name sys.dm_pdw_nodes_tran_top_version_generators.
The following example uses a test scenario in which four concurrent transactions, each identified by a transaction sequence number (XSN), are running in a database that has the ALLOW_SNAPSHOT_ISOLATION and READ_COMMITTED_SNAPSHOT options set to ON. The following transactions are running:
XSN-57 is an update operation under serializable isolation.
XSN-58 is the same as XSN-57.
XSN-59 is a select operation under snapshot isolation.
XSN-60 is the same as XSN-59.
The following query is executed.
SELECT database_id, rowset_id, aggregated_record_length_in_bytes FROM sys.dm_tran_top_version_generators;
Here is the result set.
database_id rowset_id aggregated_record_length_in_bytes ----------- -------------------- --------------------------------- 9 72057594038321152 87 9 72057594038386688 33
The output shows that all versions are created by database_id 9 and that the versions generate from two tables.