Поделиться через


sys.dm_tran_session_transactions (Transact-SQL)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Динамический sys.dm_tran_session_transactions вид управления возвращает корреляционную информацию для связанных транзакций и сессий.

Имя столбца Тип данных Description
session_id int Идентификатор сеанса, в котором выполняется транзакция.
transaction_id bigint Идентификатор транзакции.
transaction_descriptor binary(8) Идентификатор транзакции, используемый SQL Server при взаимодействии с клиентским драйвером.
enlist_count int Количество активных запросов транзакции в сеансе.
is_user_transaction bit 1 = транзакция была инициирована запросом пользователя.

0 = системная транзакция.
is_local bit 1 = локальная транзакция.

0 = распределенная транзакция или прикрепленная транзакция связанного сеанса.
is_enlisted bit 1 = является прикрепленной распределенной транзакцией.

0 = не является прикрепленной распределенной транзакцией.
is_bound bit 1 = транзакция активна в сеансе через связанные сеансы.

0 = транзакция не активна в сеансе через связанные сеансы.
open_transaction_count int Количество открытых транзакций для каждого сеанса.
pdw_node_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Идентификатор узла, на который находится данное распределение.

Разрешения

На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE.

В Microsoft Fabric для запроса sys.dm_tran_session_transactionsтребуется членство в роли Contributor workspace или более привилегированной роли.

Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader##роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.

Замечания

Через связанные сессии и распределённые транзакции возможно, что транзакция выполняется в течение нескольких сессий. В таких случаях sys.dm_tran_session_transactions отображается несколько строк для одного и того же transaction_idсеанса, в котором выполняется транзакция. Из-за различий в способе их записи, open_transaction_count они могут не совпадать sys.dm_exec_sessions...open_transaction_count

Выполняя несколько запросов в режиме автокоммита с использованием нескольких активных наборов результатов (MARS), возможно иметь более одной активной транзакции за одну сессию. В таких случаях sys.dm_tran_session_transactions отображается несколько строк для одной и той же session_idтранзакции, выполняющейся в этом сеансе.

Чтобы вызвать из Azure Synapse Analytics или Analytics Platform System (PDW), используйте название sys.dm_pdw_nodes_tran_session_transactions. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.