sys.dm_tran_top_version_generators (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform 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)