sys.dm_tran_top_version_generators (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar en virtuell tabell för de objekt som producerar flest versioner i versionslagret. sys.dm_tran_top_version_generators returnerar de 256 översta samlade rekordlängderna som är grupperade efter database_id och rowset_id. sys.dm_tran_top_version_generators hämtar data genom att fråga den dm_tran_version_store virtuella tabellen. sys.dm_tran_top_version_generators är en ineffektiv vy att köra eftersom denna vy frågar versionslagret, och versionslagret kan vara mycket stort. Vi rekommenderar att du använder denna funktion för att hitta de största konsumenterna i versionsbutiken.

Anmärkning

För att kalla detta från Azure Synapse Analytics eller Analytics Platform System (PDW), använd namnet sys.dm_pdw_nodes_tran_top_version_generators. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Syntax

  
sys.dm_tran_top_version_generators  

Tabell returnerad

Kolumnnamn Datatyp Description
database_id int Databas-ID.

I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server.
rowset_id bigint Radset-ID.
aggregated_record_length_in_bytes int Summan av skivlängderna för varje database_id och rowset_id par i versionsbutiken.
pdw_node_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifieraren för noden som den här fördelningen är på.

Permissions

På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.

I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Anmärkningar

Eftersom sys.dm_tran_top_version_generators kan behöva läsa många sidor när den skannar hela versionslagret kan sys.dm_tran_top_version_generators köra kan störa systemets prestanda.

Examples

Följande exempel använder ett testscenario där fyra samtidiga transaktioner, var och en identifierad med ett transaktionssekvensnummer (XSN), körs i en databas där ALLOW_SNAPSHOT_ISOLATION och READ_COMMITTED_SNAPSHOT alternativen är inställda på ON. Följande transaktioner körs:

  • XSN-57 är en uppdateringsoperation under serialiserbar isolering.

  • XSN-58 är samma som XSN-57.

  • XSN-59 är en select-operation under snapshot-isolering.

  • XSN-60 är samma som XSN-59.

Följande fråga exekveras.

SELECT  
    database_id,  
    rowset_id,  
    aggregated_record_length_in_bytes  
  FROM sys.dm_tran_top_version_generators;  

Här är resultatet.

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

Utdata visar att alla versioner skapas av database_id``9 och att versionerna genereras från två tabeller.

Se även

Dynamiska hanteringsvyer och funktioner (Transact-SQL)
transaktionsrelaterade dynamiska hanteringsvyer och funktioner (Transact-SQL)