sys.dm_tran_top_version_generators (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Возвращает виртуальную таблицу для объектов, формирующих большинство версий в хранилище версий. sys.dm_tran_top_version_generators возвращает первые 256 агрегированных длин записей, сгруппированных по database_id и rowset_id. sys.dm_tran_top_version_generators извлекает данные, запрашивая виртуальную таблицу dm_tran_version_store. sys.dm_tran_top_version_generators является неэффективным представлением для выполнения, так как это представление запрашивает хранилище версий, а хранилище версий может быть очень большим. Эту функцию рекомендуется использовать для поиска самых крупных потребителей в хранилище версий.
Примечание.
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_tran_top_version_generators. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Синтаксис
sys.dm_tran_top_version_generators
Возвращаемая таблица
Имя столбца | Тип данных | Description |
---|---|---|
database_id | int | Идентификатор базы данных. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
rowset_id | bigint | Идентификатор набора строк. |
aggregated_record_length_in_bytes | int | Сумма длин записей для каждой пары database_id и rowset_id в хранилище версий. |
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 на сервере.
Замечания
Так как sys.dm_tran_top_version_generators может потребоваться прочитать много страниц по мере сканирования всего хранилища версий, выполнение sys.dm_tran_top_version_generators может повлиять на производительность системы.
Примеры
Следующий пример использует тестовый сценарий, содержащий четыре параллельные транзакции, идентифицированные порядковыми номерами (XSN), который выполняется в базе данных с параметрами ALLOW_SNAPSHOT_ISOLATION и READ_COMMITTED_SNAPSHOT, установленными в значение ON. Следующие транзакции запущены:
XSN-57 является операцией обновления с сериализуемой изоляцией.
XSN-58 аналогична XSN-57.
XSN-59 является операцией выбора с изоляцией моментального снимка.
XSN-60 аналогична XSN-59.
Выполнен следующий запрос.
SELECT
database_id,
rowset_id,
aggregated_record_length_in_bytes
FROM sys.dm_tran_top_version_generators;
Вот результирующий набор.
database_id rowset_id aggregated_record_length_in_bytes
----------- -------------------- ---------------------------------
9 72057594038321152 87
9 72057594038386688 33
В выходных данных показано, что все версии создаются database_id``9
и создаются версиями из двух таблиц.
См. также
Динамические административные представления и функции (Transact-SQL)
Динамические административные представления и функции, связанные с транзакциями (Transact-SQL)