Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar en virtuell tabell som visar alla versionsposter i versionslagret. sys.dm_tran_version_store är ineffektivt att köra eftersom det frågar hela versionslagret, och versionsmagasinet kan vara mycket stort.
Varje versionerad post lagras som binär data tillsammans med viss spårnings- eller statusinformation. Liknande poster i databastabeller lagras versionslagringsposter på sidor på 8192 byte. Om en post överstiger 8192 byte kommer posten att delas upp mellan två olika poster.
Eftersom den versionerade posten lagras som binär finns det inga problem med olika sorteringar från olika databaser. Använd sys.dm_tran_version_store för att hitta tidigare versioner av raderna i binär representation så som de finns i versionslagret.
Syntax
sys.dm_tran_version_store
Tabell returnerad
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| transaction_sequence_num | bigint | Sekvensnummer för transaktionen som genererar postversionen. |
| version_sequence_num | bigint | Versionspostens sekvensnummer. Detta värde är unikt inom versionsgenererande transaktionen. |
| database_id | int | Databas-ID för den versionerade posten. 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 för posten. |
| status | tinyint | Indikerar om en versionerad post har delats upp mellan två poster. Om värdet är 0 lagras posten på en sida. Om värdet är 1 delas posten upp i två poster som lagras på två olika sidor. |
| min_length_in_bytes | smallint | Minsta längd på posten i bytes. |
| record_length_first_part_in_bytes | smallint | Längden på den första delen av den versionerade posten i bytes. |
| record_image_first_part | varbinär(8000) | Binärbild av första delen av versionsinspelningen. |
| record_length_second_part_in_bytes | smallint | Längden på den andra delen av versionen i bytes. |
| record_image_second_part | varbinär(8000) | Binärbild av den andra delen av versionsposten. |
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.
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
transaction_sequence_num,
version_sequence_num,
database_id rowset_id,
status,
min_length_in_bytes,
record_length_first_part_in_bytes,
record_image_first_part,
record_length_second_part_in_bytes,
record_image_second_part
FROM sys.dm_tran_version_store;
Här är resultatet.
transaction_sequence_num version_sequence_num database_id
------------------------ -------------------- -----------
57 1 9
57 2 9
57 3 9
58 1 9
rowset_id status min_length_in_bytes
-------------------- ------ -------------------
72057594038321152 0 12
72057594038321152 0 12
72057594038321152 0 12
72057594038386688 0 16
record_length_first_part_in_bytes
---------------------------------
29
29
29
33
record_image_first_part
--------------------------------------------------------------------
0x50000C0073000000010000000200FCB000000001000000270000000000
0x50000C0073000000020000000200FCB000000001000100270000000000
0x50000C0073000000030000000200FCB000000001000200270000000000
0x500010000100000002000000030000000300F800000000000000002E0000000000
record_length_second_part_in_bytes record_image_second_part
---------------------------------- ------------------------
0 NULL
0 NULL
0 NULL
0 NULL
Resultatet visar att XSN-57 har skapat tre radversioner från en tabell och XSN-58 har skapat en radversion från en annan tabell.
Se även
Vyer och funktioner för dynamisk hantering (Transact-SQL)
Transaktionsrelaterade dynamiska hanteringsvyer och funktioner (Transact-SQL)