Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
База данных SQL в Microsoft Fabric
Возвращает виртуальную таблицу для sequence_number транзакций, активных при запуске каждой транзакции моментального снимка. Данные, возвращаемые этим представлением, могут помочь:
найти номера активных в настоящее время транзакций моментальных снимков;
определить изменения данных, пропущенные обычной транзакцией моментальных снимков. Для транзакции, активной при запуске транзакции моментальных снимков, все измененные этой транзакцией данные (даже после того, как она будет зафиксирована) будут пропущены транзакцией моментальных снимков.
Например, рассмотрим следующие выходные данные из 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
Столбец transaction_sequence_num содержит последовательные номера транзакции (XSN) текущих транзакций моментальных снимков. В выходных данных их два: 59 и 60. Столбец snapshot_sequence_num содержит последовательные номера транзакций, активных при запуске каждой транзакции моментальных снимков.
Видно, что запуск транзакции моментальных снимков XSN-59 произошел, когда были активны транзакции XSN-57 и XSN-58. Если в транзакциях XSN-57 или XSN-58 выполняется изменение данных, транзакция XSN-59 пропустит эти изменения и будет использовать управление версиями строк для поддержки транзакционно согласованного представления базы данных.
Транзакция моментальных снимков XSN-60 пропустит изменения данных, сделанные в транзакциях XSN-57, XSN-58 и XSN 59.
Возвращаемая таблица
| Название столбца | Тип данных | Описание |
|---|---|---|
| transaction_sequence_num | bigint | Последовательный номер транзакции моментальных снимков. |
| snapshot_id | int | Идентификатор моментального снимка для каждой инструкции Transact-SQL, запущенной при чтении, с помощью управления версиями строк. Этот идентификатор используется для формирования согласованного на уровне транзакций представления базы данных, поддерживающего выполнение каждого запроса в контексте управления версиями строк с чтением только зафиксированных данных. |
| snapshot_sequence_num | bigint | Последовательный номер транзакции, которая была активна при запуске транзакции моментальных снимков. |
Permissions
Для SQL Server и Управляемого экземпляра SQL требуется разрешение VIEW SERVER STATE.
В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.
Разрешения для SQL Server 2022 и более поздних версий
Требуется VIEW разрешение на состояние производительности сервера на сервере.
Замечания
При запуске транзакции моментального снимка ядро СУБД записывает все активные транзакции в это время. sys.dm_tran_transactions_snapshot сообщает эти сведения для всех текущих активных транзакций моментальных снимков.
Каждая транзакция имеет последовательный номер, который назначается ей при запуске. Запуск транзакций начинается с вызова инструкции BEGIN TRANSACTION или BEGIN WORK. Однако ядро СУБД назначает номер последовательности транзакций с выполнением первой инструкции Transact-SQL, которая обращается к данным после инструкции BEGIN TRANSACTION или BEGIN WORK. Последовательные номера транзакций увеличиваются с единичным интервалом.
См. также
Динамические административные представления и функции (Transact-SQL)
Динамические административные представления и функции, связанные с транзакциями (Transact-SQL)