sys.dm_tran_version_store_space_usage (Transact-SQL)

适用于: SQL Server 2016 SP 2 及更高版本 Azure SQL 数据库 Azure Synapse Analytics 并行数据仓库

返回一个表,该表显示每个数据库的版本存储记录使用的 tempdb 中的总空间。 sys.dm_tran_version_store_space_usage 运行效率高且成本不菲,因为它不会浏览各个版本存储记录,并返回每个数据库 tempdb 中消耗的聚合版本存储空间。

每个版本控制的记录都存储为二进制数据,以及一些跟踪或状态信息。 与数据库表中的记录相似,版本存储区记录存储在 8192 字节的页中。 如果记录超过 8192 字节,则该记录将拆分为两个不同的记录。

由于有版本控制的记录以二进制数据的形式存储,因此不同的数据库可以采用不同的排序规则。 使用 sys.dm_tran_version_store_space_usage 根据实例中数据库的版本存储空间使用情况来监视和规划 tempdb SQL Server大小。

列名称 数据类型 说明
database_id int 数据库的数据库 ID。
reserved_page_count bigint 在 tempdb 中为数据库的版本存储记录保留的总页数。
reserved_space_kb bigint tempdb 中用于数据库版本存储记录的总空间(以 KB 为单位)。

权限

在 SQL Server 上,需要 VIEW SERVER 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             
AdventureWorks2016        10                   80             
AdventureWorks2016DW      0                    0             
WideWorldImporters        20                   160             

另请参阅

动态管理视图和函数 (Transact-SQL)
与事务相关的动态管理视图和函数 (Transact-SQL)