sql-server - 索引空间的总和 :: 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]
为什么?
解决方案
谢谢@Jeroen Mostert,
实际上簇索引是表数据的一部分。
使用索引空间 SSMS 仅计算非聚集索引,即:1452 + 1590 + 1590 + 1452 + 1452 = 7536MB
非常接近7555MB
推荐阅读
- tensorflow - 前向传递后使用的 KL 损失到底在哪里?
- chef-infra - 在 InSpec 报告中获取版本变量作为输出
- cadence-workflow - 如何从 Cadence 工作流程或活动发出自定义指标?
- java - 如何克服 java.lang.OutOfMemoryError:图像文件在 XML 代码中未在 Activity 中使用的位置。仅在某些设备中出现错误
- rust - 如何为关联常量在 Self 上设置显式生命周期?
- android - 如何使用 Qt 读取 Android 中现有的 SQLite 数据库?
- c++ - 控制台在立即获得输入后立即退出
- swift - Swift 断言失败
- amazon-web-services - 在ec2中部署rest api并通过https服务
- node.js - Express JS 上的 UnhandledPromiseRejectionWarning