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 pro sequence_number transakcí, které jsou aktivní při zahájení každé snapshot transakce. Informace, které tento pohled vrátí, vám mohou pomoci udělat následující:
Najděte počet aktuálně aktivních snapshot transakcí.
Identifikujte úpravy dat, které jsou ignorovány konkrétní transakcí snapshotu. U transakce, která je aktivní při zahájení snapshot transakce, jsou všechny úpravy dat touto transakcí, i po jejím potvrzení, ignorovány snapshot transakcí.
Například zvažme následující výstup z sys.dm_tran_transactions_snapshot:
transaction_sequence_num snapshot_id snapshot_sequence_num
------------------------ ----------- ---------------------
59 0 57
59 0 58
60 0 57
60 0 58
60 0 59
60 3 57
60 3 58
60 3 59
60 3 60
Sloupec transaction_sequence_num identifikuje číslo sekvence transakcí (XSN) aktuálních snapshot transakcí. Výstup ukazuje dva: 59 a 60. Sloupec snapshot_sequence_num identifikuje pořadové číslo transakcí u transakcí, které jsou aktivní při zahájení každé snapshot transakce.
Výstup ukazuje, že snapshot transakce XSN-59 začíná, zatímco běží dvě aktivní transakce, XSN-57 a XSN-58. Pokud XSN-57 nebo XSN-58 provádí úpravy dat, XSN-59 změny ignoruje a používá verzování řádků k udržení transakčního konzistentního pohledu na databázi.
Snapshot transakce XSN-60 ignoruje úpravy dat provedené XSN-57 a XSN-58 a také XSN 59.
Vrácená tabulka
| Název sloupce | Datový typ | Description |
|---|---|---|
| transaction_sequence_num | bigint | Sekvenční číslo transakce (XSN) snapshot transakce. |
| snapshot_id | int | Snapshot ID pro každý Transact-SQL příkaz začínal pod read-commit, používající verzování řádků. Tato hodnota se používá k vytvoření transakční konzistentního pohledu na databázi podporující každý dotaz spouštěný pod read-commit, přičemž se používá verzování řádku. |
| snapshot_sequence_num | bigint | Sekvenční číslo transakce, která byla aktivní, když snapshot transakce začala. |
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.
Poznámky
Když začne snapshot transakce, databázový engine zaznamenává všechny transakce, které jsou v danou chvíli aktivní. sys.dm_tran_transactions_snapshot tyto informace vykazuje pro všechny aktuálně aktivní transakce snapshotů.
Každá transakce je identifikována sekvenčním číslem transakce, které je přiřazeno při jejím zahájení. Transakce začínají v okamžiku, kdy je vykonán příkaz BEGIN TRANSACTION nebo BEGIN WORK. Databázový engine však přiřazuje sekvenční číslo transakce při provedení prvního příkazu Transact-SQL, který přistupuje k datům po příkazu BEGIN TRANSACTION nebo BEGIN WORK. Čísla transakcí se zvyšují o jednu.
Viz také
zobrazení a funkce dynamické správy (Transact-SQL)
Zobrazení a funkce dynamické správy související s transakcemi (Transact-SQL)