Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrací virtuální tabulku, která zobrazuje všechny záznamy verzí ve skladu verzí. sys.dm_tran_version_store je neefektivní na provoz, protože dotazuje celé úložiště verzí a úložiště verzí může být velmi rozsáhlé.
Každý verzovaný záznam je uložen jako binární data spolu s některými sledujícími nebo stavovými informacemi. Podobně jako záznamy v databázových tabulkách jsou záznamy s uložením verzí uloženy na stránkách o velikosti 8192 bajtů. Pokud záznam překročí 8192 bajtů, bude rozdělen na dva různé záznamy.
Protože je verzovaný záznam uložen jako binární, nejsou problémy s různými třídami z různých databází. Použijte sys.dm_tran_version_store k nalezení předchozích verzí řádků v binární reprezentaci, jak existují ve skladu verzí.
Syntaxe
sys.dm_tran_version_store
Vrácená tabulka
| Název sloupce | Datový typ | Description |
|---|---|---|
| transaction_sequence_num | bigint | Pořadové číslo transakce, která generuje verzi záznamu. |
| version_sequence_num | bigint | Sekvenční číslo záznamu verze. Tato hodnota je v rámci transakce generující verzi jedinečná. |
| database_id | int | Databázové ID verze záznamu. Ve službě Azure SQL Database jsou hodnoty jedinečné v rámci jedné databáze nebo elastického fondu, ale ne v rámci logického serveru. |
| rowset_id | bigint | Identifikace řádků záznamu. |
| stav | tinyint | Označuje, zda byl verzovaný záznam rozdělen na dva záznamy. Pokud je hodnota 0, záznam je uložen na jedné stránce. Pokud je hodnota 1, záznam se rozdělí na dva záznamy, které jsou uloženy na dvou různých stránkách. |
| min_length_in_bytes | smallint | Minimální délka záznamu v bajtech. |
| record_length_first_part_in_bytes | smallint | Délka první části verze záznamu v bajtech. |
| record_image_first_part | varbinary(8000) | Binární obraz první části záznamu verzí. |
| record_length_second_part_in_bytes | smallint | Délka druhé části záznamu verze v bajtech. |
| record_image_second_part | varbinary(8000) | Binární obraz druhé části záznamu verzí. |
Povolení
Na SQL Serveru a službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.
U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.
Examples
Následující příklad používá testovací scénář, ve kterém v databázi běží čtyři souběžné transakce, každá označená sekvenčním číslem transakce (XSN), která má nastavené možnosti ALLOW_SNAPSHOT_ISOLATION a READ_COMMITTED_SNAPSHOT na ON. Probíhají následující transakce:
XSN-57 je aktualizační operace v rámci serializovatelné izolace.
XSN-58 je stejný jako XSN-57.
XSN-59 je vybraná operace při izolaci snímků.
XSN-60 je stejný jako XSN-59.
Následující dotaz je vykonán.
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;
Tady je soubor výsledků.
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
Výstup ukazuje, že XSN-57 vytvořil tři řádkové verze z jedné tabulky a XSN-58 vytvořil jednu řádkovou verzi z jiné tabulky.
Viz také
Zobrazení a funkce dynamické správy (Transact-SQL)
Zobrazení a funkce dynamické správy související s transakcemi (Transact-SQL)