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


sys.dm_tran_version_store_space_usage (Transact-SQL)

Область применения: SQL Server 2016 (13.x) с пакетом обновления 2 (SP 2) и более поздних версий База данных SQL AzureНе поддерживается. Azure Synapse Analytics Analytics Не поддерживается. Platform System (PDW)

Возвращает таблицу, отображающую общее пространство в tempdb, используемое записями хранилища версий для каждой базы данных. sys.dm_tran_version_store_space_usage является эффективным и не дорогостоящим для выполнения, так как он не проходит по отдельным записям хранилища версий и возвращает совокупное пространство хранилища версий, потребляемое в tempdb для каждой базы данных.

Каждая версия записи хранится в виде двоичных данных вместе с некоторыми сведениями об отслеживании или состоянии. Как и в таблицах базы данных, записи в хранилище версий хранятся в страницах размером 8192 байта. Если размер записи превышает 8192 байта, она разбивается на две различные записи.

Так как запись версии хранится в двоичном виде, не возникает проблем с разными параметрами сортировки из разных баз данных. Используйте sys.dm_tran_version_store_space_usage для отслеживания и планирования размера tempdb на основе использования пространства в хранилище версий баз данных в экземпляре SQL Server.

Имя столбца Тип данных Description
database_id int Идентификатор базы данных.

В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере.
reserved_page_count bigint Общее количество страниц, зарезервированных в tempdb для записей хранилища версий базы данных.
reserved_space_kb bigint Общее пространство, используемое в килобайтах в tempdb для записей хранилища версий базы данных.

Разрешения

В SQL Server требуется разрешение VIEW SERVER STATE.

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

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

Примеры

Следующий запрос можно использовать для определения места, потребляемого в tempdb, по хранилищу версий каждой базы данных в экземпляре SQL Server.

SELECT 
  DB_NAME(database_id) as 'Database Name',
  reserved_page_count,
  reserved_space_kb 
FROM sys.dm_tran_version_store_space_usage;  

Вот результирующий набор.

Database Name            reserved_page_count reserved_space_kb  
------------------------ -------------------- -----------  
msdb                      0                    0             
AdventureWorks2022        10                   80             
AdventureWorks2022DW      0                    0             
WideWorldImporters        20                   160             

См. также

Динамические административные представления и функции (Transact-SQL)
Динамические административные представления и функции, связанные с транзакциями (Transact-SQL)