sys.dm_tran_version_store_space_usage (Transact-SQL)
适用于: SQL Server 2016 (13.x) SP 2 及更高版本 Azure SQL 数据库 Azure Synapse Analytics 分析平台系统 (PDW)
返回一个表,该表显示每个数据库的版本存储记录使用的 tempdb 中的总空间。 sys.dm_tran_version_store_space_usage高效且不昂贵地运行,因为它不会浏览各个版本存储记录,并返回每个数据库在 tempdb 中消耗的聚合版本存储空间。
每个版本控制记录都存储为二进制数据,以及一些跟踪或状态信息。 与数据库表中的记录相似,版本存储区记录存储在 8192 字节的页中。 如果记录超过 8192 字节,则该记录将拆分为两个不同的记录。
由于有版本控制的记录以二进制数据的形式存储,因此不同的数据库可以采用不同的排序规则。 使用 sys.dm_tran_version_store_space_usage 根据 SQL Server 实例中数据库的存储空间使用情况来监视和规划 tempdb 大小。
列名称 | 数据类型 | 描述 |
---|---|---|
database_id | int | 数据库的数据库 ID。 在 Azure SQL 数据库中,这些值在单一数据库或弹性池中是唯一的,但在逻辑服务器中不是唯一的。 |
reserved_page_count | bigint | tempdb 中为数据库的版本存储记录保留的页面总数。 |
reserved_space_kb | bigint | tempdb 中用于数据库的版本存储记录的总空间(以千字节为单位)。 |
权限
在 SQL Server 上,需要 VIEW SERVER STATE
权限。
SQL Server 2022 及更高版本的权限
要求对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。
示例
以下查询可用于根据 SQL Server 实例中每个数据库的版本存储来确定 tempdb 中使用的空间。
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