sys.dm_tran_top_version_generators (Transact-SQL)

Применимо к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)База данных SQL в Microsoft Fabric

Возвращает виртуальную таблицу для объектов, формирующих большинство версий в хранилище версий. 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 является неэффективным представлением для выполнения, так как это представление запрашивает хранилище версий, а хранилище версий может быть очень большим. Эту функцию рекомендуется использовать для поиска самых крупных потребителей в хранилище версий.

Note

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

Syntax

  
sys.dm_tran_top_version_generators  

Возвращаемая таблица

Название столбца Тип данных Описание
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, система платформы аналитики (PDW)

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

Permissions

Для SQL Server и Управляемого экземпляра SQL требуется разрешение VIEW SERVER STATE.

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

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

Требуется VIEW разрешение на состояние производительности сервера на сервере.

Замечания

Так как sys.dm_tran_top_version_generators может потребоваться прочитать много страниц по мере сканирования всего хранилища версий, выполнение sys.dm_tran_top_version_generators может повлиять на производительность системы.

Examples

Следующий пример использует тестовый сценарий, содержащий четыре параллельные транзакции, идентифицированные порядковыми номерами (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 и создаются версиями из двух таблиц.