sys.dm_tran_current_snapshot (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Возвращает виртуальную таблицу, которая отображает все активные транзакции в момент запуска текущей транзакции моментального снимка. Если текущая транзакция не является транзакцией моментальных снимков, данная функция не возвращает строк. sys.dm_tran_current_snapshot аналогично sys.dm_tran_transactions_snapshot, за исключением того, что sys.dm_tran_current_snapshot возвращает только активные транзакции для текущей транзакции моментального снимка.
Примечание.
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_tran_current_snapshot. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Синтаксис
sys.dm_tran_current_snapshot
Возвращаемая таблица
Имя столбца | Тип данных | Description |
---|---|---|
transaction_sequence_num | bigint | Порядковый номер активной транзакции. |
pdw_node_id | int | Область применения: Azure Synapse Analytics, Analytics Platform System (PDW) Идентификатор узла, на который находится данное распределение. |
Разрешения
На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE
.
Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader##
роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE
в базе данных или членство в роли сервера ##MS_ServerStateReader##
.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Примеры
Следующий пример использует тестовый сценарий, содержащий четыре параллельные транзакции, идентифицированные порядковыми номерами (XSN), который выполняется в базе данных с параметрами ALLOW_SNAPSHOT_ISOLATION и READ_COMMITTED_SNAPSHOT, установленными в значение ON. Следующие транзакции запущены:
XSN-57 является операцией обновления с сериализуемой изоляцией.
XSN-58 аналогична XSN-57.
XSN-59 является операцией выбора с изоляцией моментального снимка.
XSN-60 аналогична XSN-59.
Следующий запрос выполняется в области транзакции XSN-59.
SELECT
transaction_sequence_num
FROM sys.dm_tran_current_snapshot;
Вот результирующий набор.
transaction_sequence_num
------------------------
57
58
Результаты показывают, что транзакции XSN-57 и XSN-58 были активны на момент начала транзакции XSN-59. Этот же результат наблюдается даже после фиксации или отката транзакций XSN-57 и XSN-58, до тех пор, пока не будет завершена транзакция моментального снимка.
Такой же запрос выполняется в области транзакции XSN-60.
Вот результирующий набор.
transaction_sequence_num
------------------------
57
58
59
Выход транзакции XSN-60 включает те же транзакции, что и для транзакции XSN-59, но также включает XSN-59, которая была активна на момент начала транзакции XSN-60.
См. также
Динамические административные представления и функции (Transact-SQL)
Динамические административные представления и функции, связанные с транзакциями (Transact-SQL)