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)