Delen via


sys.dm_tran_top_version_generators (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Geeft een virtuele tabel terug voor de objecten die de meeste versies produceren in de versieopslag. sys.dm_tran_top_version_generators geeft de top 256 geaggregeerde recordlengtes terug, gegroepeerd op basis van de database_id en rowset_id. sys.dm_tran_top_version_generators haalt gegevens op door de dm_tran_version_store virtuele tabel te bevragen. sys.dm_tran_top_version_generators is een inefficiënte weergave om uit te voeren omdat deze weergave de versieopslag opvraagt, en de versieopslag kan erg groot zijn. We raden aan deze functie te gebruiken om de grootste klanten van de versiewinkel te vinden.

Opmerking

Om dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW), gebruik de naam sys.dm_pdw_nodes_tran_top_version_generators. Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Syntaxis

  
sys.dm_tran_top_version_generators  

Tabel geretourneerd

Kolomnaam Gegevenstype Description
database_id int Database-ID.

In Azure SQL Database zijn de waarden uniek binnen één database of een elastische pool, maar niet binnen een logische server.
rowset_id bigint Rijset-ID.
aggregated_record_length_in_bytes int Som van de recordlengtes voor elke database_id en rowset_id paar in de versiewinkel.
pdw_node_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.

Permissions

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Opmerkingen

Omdat sys.dm_tran_top_version_generators misschien veel pagina's moet lezen terwijl het de hele versiewinkel scant, kan het uitvoeren van sys.dm_tran_top_version_generators de systeemprestaties verstoren.

Voorbeelden

Het volgende voorbeeld gebruikt een testscenario waarin vier gelijktijdige transacties, elk geïdentificeerd door een transactiesequentienummer (XSN), draaien in een database met de ALLOW_SNAPSHOT_ISOLATION en READ_COMMITTED_SNAPSHOT opties op ON. De volgende transacties draaien:

  • XSN-57 is een update-operatie onder serialiseerbare isolatie.

  • XSN-58 is hetzelfde als XSN-57.

  • XSN-59 is een select-operatie onder snapshot-isolatie.

  • XSN-60 is hetzelfde als XSN-59.

De volgende query wordt uitgevoerd.

SELECT  
    database_id,  
    rowset_id,  
    aggregated_record_length_in_bytes  
  FROM sys.dm_tran_top_version_generators;  

Hier is het resultatenoverzicht.

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

De output toont aan dat alle versies worden gemaakt door database_id``9 en dat de versies genereren uit twee tabellen.

Zie ook

Dynamische Beheerweergaven en -functies (Transact-SQL)
dynamische beheerweergaven en -functies met betrekking tot transacties (Transact-SQL)