sys.dm_tran_current_snapshot (Transact-SQL)

Возвращает виртуальную таблицу, которая отображает все активные транзакции в момент запуска текущей транзакции моментального снимка. Если текущая транзакция не является транзакцией моментальных снимков, данная функция не возвращает строк. Представление sys.dm_tran_current_snapshot похоже на представление sys.dm_tran_transactions_snapshot, но представление sys.dm_tran_current_snapshot возвращает только активные транзакции для текущей транзакции моментального снимка.

Синтаксис

sys.dm_tran_current_snapshot

Возвращаемые таблицы

Имя столбца

Тип данных

Описание

transaction_sequence_num

bigint

Порядковый номер активной транзакции.

Разрешения

Требует разрешения VIEW SERVER 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)