SQL Server 容量估算
免费在线估算 SQL Server 表与索引的磁盘占用。按表结构、预计行数、FILLFACTOR 与行/页压缩、非聚集索引,基于官方 8KB 页公式快速评估单表体积,辅助容量规划,数据全程本地计算。
功能特性
基于 SQL Server 官方估算公式:固定 8KB 页、行头 4 字节、NULL 位图、变长偏移数组与 BIT 打包,逐列精确计算行内大小。
支持聚集索引/堆、FILLFACTOR、行/页压缩比率、DECIMAL 精度与 DATETIME2 精度自定义。
非聚集索引按 B-Tree 逐层(叶子/中间/根)累加页数,并区分堆 RID 与聚集键定位符。
所有估算在浏览器本地完成,无需上传表结构。
使用步骤
选择版本、表结构(聚集/堆)、行数、FILLFACTOR 与压缩(比率)。
添加并配置列的类型、长度/精度、小数、平均长度、可空与聚集键。
勾选索引包含的列,并设置是否唯一。
查看空间构成(含 IAM/区分配)与优化建议,一键复制报告。
适用场景
常见问题
估算包含 8060 行溢出吗?
包含。当单行记录超过 8060 字节行内上限时,超限变长列会被推到行溢出页(VARCHAR(MAX)/NVARCHAR(MAX)/XML 默认在行内仅留 24 字节根),估算已自动计入该开销。
BIT 列如何计费?
SQL Server 将 BIT 列打包存储:每 8 个 BIT 占 1 字节,而非每列 1 字节。估算按 ⌈BIT 列数/8⌉ 计算,避免高估。
聚集索引与堆有何区别?
聚集索引表中数据即聚集索引的叶子层,FILLFACTOR 作用于数据页,非聚集索引携带聚集键值作为定位符;堆表中数据页忽略 FILLFACTOR(接近 100% 填充),非聚集索引使用 8 字节 RID 定位。
FILLFACTOR 与压缩有什么影响?
FILLFACTOR 决定页填充率,仅作用于聚集数据页与索引叶页(堆数据页不受影响);行/页压缩按可编辑比率折算数据与索引字节,实际收益随数据重复度变化,且需 SQL Server 2008+(2016+ 标准版亦支持)。
估算结果准确吗?
估算基于 SQL Server 官方存储公式与精确的每列字节规则,结果接近真实占用;但未计入分区/文件组、forwarded records、版本存储、ghost 记录与碎片,结果仅供参考。