SQL Server 容量估算

免费在线估算 SQL Server 表与索引的磁盘占用。按表结构、预计行数、FILLFACTOR 与行/页压缩、非聚集索引,基于官方 8KB 页公式快速评估单表体积,辅助容量规划,数据全程本地计算。

功能特性

官方公式感知

基于 SQL Server 官方估算公式:固定 8KB 页、行头 4 字节、NULL 位图、变长偏移数组与 BIT 打包,逐列精确计算行内大小。

结构可配

支持聚集索引/堆、FILLFACTOR、行/页压缩比率、DECIMAL 精度与 DATETIME2 精度自定义。

B-Tree 全层

非聚集索引按 B-Tree 逐层(叶子/中间/根)累加页数,并区分堆 RID 与聚集键定位符。

本地计算

所有估算在浏览器本地完成,无需上传表结构。

使用步骤

01设置表级参数

选择版本、表结构(聚集/堆)、行数、FILLFACTOR 与压缩(比率)。

02定义列

添加并配置列的类型、长度/精度、小数、平均长度、可空与聚集键。

03定义非聚集索引

勾选索引包含的列,并设置是否唯一。

04查看与复制

查看空间构成(含 IAM/区分配)与优化建议,一键复制报告。

适用场景

SQL Server 容量规划表结构设计评估索引体积评估聚集索引 vs 堆对比页压缩收益评估迁移容量预算行溢出/LOB 影响评估

常见问题

估算包含 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 记录与碎片,结果仅供参考。

相关工具