Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
SQL аналитическая конечная точка в Microsoft Fabric
Хранилище в Microsoft Fabric
SQL база данных в Microsoft Fabric
Динамический вид управления возвращает sys.dm_tran_active_transactions информацию о транзакциях для экземпляра.
| Имя столбца | Тип данных | Description |
|---|---|---|
transaction_id |
bigint | Идентификатор транзакции на уровне экземпляра, а не на уровне базы данных. Он уникален во всех базах данных только в пределах экземпляра, но не уникален во всех экземплярах сервера. |
name |
nvarchar(32) | Имя транзакции. Оно перезаписывается, если транзакция помечена, и помеченное имя заменяет имя транзакции. |
transaction_begin_time |
datetime | Время начала транзакции. |
transaction_type |
int | Тип транзакции. 1 = транзакция чтения-записи 2 = транзакция только чтения 3 = системная транзакция 4 = распределенная транзакция |
transaction_uow |
uniqueidentifier | Идентификатор единицы работы транзакции (UOW) для распределенных транзакций. Распределённый координатор транзакций Microsoft (MS DTC) использует идентификатор UOW для работы с распределённой транзакцией. |
transaction_state |
int | 0 = Транзакция еще не была полностью инициализирована. 1 = Транзакция инициализована, но не запущена. 2 = Транзакция активна. 3 = Транзакция закончилась. Используется для транзакций только для чтения. 4 = Фиксирующий процесс был инициализирован на распределенной транзакции. Только для распределённых транзакций. Распределенная транзакция все еще активна, но дальнейшая обработка не может иметь место. 5 = Транзакция находится в готовом состоянии и ожидает разрешения. 6 = транзакция зафиксирована. 7 = Производится откат транзакции. 8 = транзакция была откатена. |
transaction_status |
int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
transaction_status2 |
int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
dtc_state |
int |
Область применения: База данных SQL Azure. 1 = АКТИВНЫЙ 2 = ГОТОВО 3 = ОБЯЗАТЕЛЬСТВО 4 = ОТМЕНЕНО 5 = ВОССТАНОВЛЕНО |
dtc_status |
int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
dtc_isolation_level |
int | Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
filestream_transaction_id |
varbinary(128) |
Область применения: База данных SQL Azure. Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. |
pdw_node_id |
int |
Применимо к: Azure Synapse Analytics Идентификатор узла, на который находится это распределение. |
Permissions
Для SQL Server и Управляемого экземпляра SQL требуется разрешение VIEW SERVER STATE.
В Microsoft Fabric для запроса требуется членство в роли Contributor workspace или более привилегированной роли.sys.dm_tran_active_transactions
В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.
Разрешения для SQL Server 2022 и более поздних версий
Требуется VIEW разрешение на состояние производительности сервера на сервере.
Замечания
Чтобы вызвать этот динамический вид управления из Azure Synapse Analytics, используйте имяsys.dm_pdw_nodes_tran_active_transactions: Этот синтаксис не поддерживается серверным SQL-пулом в Azure Synapse Analytics.
Examples
А. Используйте sys.dm_tran_active_transactions вместе с другими DMV, чтобы найти информацию об активных транзакциях
Следующий пример показывает любые активные транзакции в системе. Запрос содержит подробную информацию о транзакции, пользовательской сессии, приложении, которое было отправлено, и запросе, который её инициировал, а также о многих других.
SELECT
GETDATE() as now,
DATEDIFF(SECOND, transaction_begin_time, GETDATE()) as tran_elapsed_time_seconds,
st.session_id,
txt.text,
*
FROM
sys.dm_tran_active_transactions at
INNER JOIN sys.dm_tran_session_transactions st ON st.transaction_id = at.transaction_id
LEFT OUTER JOIN sys.dm_exec_sessions sess ON st.session_id = sess.session_id
LEFT OUTER JOIN sys.dm_exec_connections conn ON conn.session_id = sess.session_id
OUTER APPLY sys.dm_exec_sql_text(conn.most_recent_sql_handle) AS txt
ORDER BY
tran_elapsed_time_seconds DESC;