Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Egy virtuális táblát ad vissza, amely megjeleníti az összes verziórekordot a verzióboltban. sys.dm_tran_version_store hatékonytalan futtatni, mert az egész verzióraktárt lekérdezi, és a verziótároló nagyon nagy lehet.
Minden verziózott rekordot bináris adatként tárolnak, némi követési vagy státuszinformációval együtt. Hasonlóan az adatbázis táblákban lévő rekordokhoz, a verziótároló rekordok 8192 bájtos oldalakon vannak tárolva. Ha egy rekord meghaladja a 8192 bájtot, a rekordot két különböző rekord között osztják fel.
Mivel a verziózott rekord bináris állapotban van tárolva, nincs probléma különböző adatbázisokból származó különböző összeállításokkal. Használd sys.dm_tran_version_store-t , hogy megtaláld a sorok korábbi verzióit bináris ábrázolásban, ahogy azok a verzió áruházban léteznek.
Szemantika
sys.dm_tran_version_store
Visszaadott tábla
| Oszlop név | Adattípus | Description |
|---|---|---|
| transaction_sequence_num | bigint | A tranzakció sorszáma, amely a rekordverziót generálja. |
| version_sequence_num | bigint | Verzió rekord szekvenciászám. Ez az érték egyedi a verziógeneráló tranzakción belül. |
| database_id | int | A verziózott rekord adatbázis-azonosítója. Az Azure SQL Database-ben az értékek egyediek egyetlen adatbázisban vagy rugalmas készletben, de nem logikai kiszolgálón belül. |
| rowset_id | bigint | A rekord sorsorazonosítója. |
| állapot | tinyint | Jelzi, hogy egy verziózott rekordot két lemez között osztottak-e fel. Ha az érték 0, a rekord egy oldalon tárolódik. Ha az érték 1, a rekord két bejegyzésre oszlik, amelyek két különböző oldalon tárolódnak. |
| min_length_in_bytes | smallint | A rekord minimális hossza bájtokban. |
| record_length_first_part_in_bytes | smallint | A verziózott lemez első részének hossza bájtokban. |
| record_image_first_part | varbinary(8000) | A verzió első részének bináris képe. |
| record_length_second_part_in_bytes | smallint | A verzió második részének hossza bájtokban. |
| record_image_second_part | varbinary(8000) | A verzió rekordjának második részének bináris képe. |
Permissions
Az SQL Serveren és a felügyelt SQL-példányon VIEW SERVER STATE engedély szükséges.
Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.
Engedélyek az SQL Server 2022-hez és újabb verziókhoz
A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.
Példák
A következő példa egy teszthelyzetet használ, amelyben négy egyidejű tranzakció, mindegyiket egy tranzakciósorozat számmal (XSN) azonosítva, egy olyan adatbázisban fut, amelynek ALLOW_SNAPSHOT_ISOLATION és READ_COMMITTED_SNAPSHOT opciói ON-ra vannak állítva. A következő tranzakciók zajlanak:
Az XSN-57 egy frissítő művelet, amely sorozatos izolációval rendelkezik.
Az XSN-58 ugyanaz, mint az XSN-57.
Az XSN-59 egy kiválasztott művelet snapshot izoláció alatt.
Az XSN-60 ugyanaz, mint az XSN-59.
A következő lekérdezést hajtják végre.
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;
Itt van az eredmények összessége.
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
A kimenet azt mutatja, hogy az XSN-57 három sorverziót hozott létre egy táblából, míg az XSN-58 egy sorverziót egy másik táblából.
Lásd még:
Dinamikus felügyeleti nézetek és függvények (Transact-SQL)
Tranzakcióval kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)