首页 > 解决方案 > 索引空间的总和 :: T-SQL vs GUI

问题描述

我最近重建了表上的所有索引,SSMS 的 GUI 告诉我索引空间为 7 555.711 MB。

在此处输入图像描述

但是如果我通过 T-SQL 查看实际的索引空间,我会得到不同的结果:

SELECT tn.[name] AS [Table name], ix.[name] AS [Index name],
SUM(sz.[used_page_count]) * 8 * 1024/(1024 * 1024)  AS [Index size (MB)]
FROM sys.dm_db_partition_stats AS sz
INNER JOIN sys.indexes AS ix ON sz.[object_id] = ix.[object_id] 
AND sz.[index_id] = ix.[index_id]
INNER JOIN sys.tables tn ON tn.OBJECT_ID = ix.object_id
where tn.[name] = 'MyTableName'
GROUP BY tn.[name], ix.[name]
ORDER BY tn.[name]

在此处输入图像描述

为什么?

标签: sql-servertsqlindexing

解决方案


谢谢@Jeroen Mostert,

实际上簇索引是表数据的一部分。

使用索引空间 SSMS 仅计算非聚集索引,即:1452 + 1590 + 1590 + 1452 + 1452 = 7536MB

非常接近7555MB


推荐阅读