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


sys.dm_tran_database_transactions (Transact-SQL)

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

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

Имя столбца Тип данных Description
transaction_id bigint Идентификатор транзакции на уровне экземпляра, а не на уровне базы данных. Уникален в пределах баз данных экземпляра, но не уникален в пределах экземпляров сервера.
database_id int Идентификатор базы данных, связанной с транзакцией.

В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере.
database_transaction_begin_time datetime Момент времени, с которого база данных задействована в транзакции. Точнее, это время первой записи журнала в базе данных для данной транзакции.
database_transaction_type int 1 = транзакция чтения-записи

2 = транзакция только чтения

3 = системная транзакция
database_transaction_state int 1 = Транзакция не инициализирована.

3 = Транзакция инициализирована, но в ней еще не сформировано ни одной записи журнала.

4 = В транзакции имеются сформированные записи журнала.

5 = Транзакция подготовлена.

10 = Транзакция зафиксирована.

11 = Транзакция находится в процессе отката.

12 = Транзакция находится в стадии фиксации. (Запись журнала генерируется, но не материализуется и не сохраняется.)
database_transaction_status int Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
database_transaction_status2 int Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
database_transaction_log_record_count bigint Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Число записей журнала, сформированных в базе данных для этой транзакции.
database_transaction_replicate_record_count int Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Количество записей журнала, созданных в базе данных для реплицируемой транзакции.
database_transaction_log_bytes_used bigint Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Число байтов, используемых журналом базы данных для данной транзакции.
database_transaction_log_bytes_reserved bigint Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Число байтов, зарезервированных в журнале базы данных для данной транзакции.
database_transaction_log_bytes_used_system int Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Число байтов, занятых в журнале базы данных для системных транзакций от имени данной транзакции.
database_transaction_log_bytes_reserved_system int Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Число байтов, зарезервированных в журнале базы данных для системных транзакций от имени данной транзакции.
database_transaction_begin_lsn numeric(25,0) Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Регистрационный номер транзакции в журнале (номер LSN) начальной записи для данной транзакции в журнале базы данных.
database_transaction_last_lsn numeric(25,0) Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Номер LSN последней сохраненной записи для данной транзакции в журнале базы данных.
database_transaction_most_recent_savepoint_lsn numeric(25,0) Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Номер LSN самой последней точки сохранения для данной транзакции в журнале базы данных.
database_transaction_commit_lsn numeric(25,0) Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Номер LSN записи фиксации для данной транзакции в журнале базы данных.
database_transaction_last_rollback_lsn numeric(25,0) Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Номер LSN транзакции в журнале, до которой произошел последний откат. Если откат не произошел, значение maxLSN.
database_transaction_next_undo_lsn numeric(25,0) Область применения: SQL Server 2008 (10.0.x) и более поздних версий.

Номер LSN следующей записи для отката.
pdw_node_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Идентификатор узла, на который находится данное распределение.
database_transaction_first_repl_lsn numeric(25,0) Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

LSN первого логарифма в транзакции, требующей репликации.

Разрешения

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

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

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

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

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

Замечания

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