计算的索引大小与实际索引大小之间的差异

时间:2018-08-21 12:54:37

标签: sql-server database

由于索引高度分散,我需要重建索引。

信息:

Miscrosoft SQL Server 2008 R2(企业版)

我有一个只有一个索引的大表(12,033,735,256行)。这是具有以下内容的非聚集索引:

  • 索引键列:uniqueidentifier(16个字节)。
  • 包括的列:实数(4个字节),uniqueidentifier(16个字节)。
  • 填充因子:100。

该表还有另一列具有唯一标识符的列,但索引未考虑它。

该索引在过去4年中可能尚未重组或重建,每天有数百万新行。据我所知,此时表没有发生太大变化(数据或数据类型或添加/删除的列均未更改)

步骤:

我遵循此MS指南来找出重建索引所需的空间:https://docs.microsoft.com/en-us/sql/relational-databases/indexes/index-disk-space-example?view=sql-server-2017&viewFallbackFrom=sql-server-2008

计算:

非簇索引大小:12,033,735,256行*(16 + 4 + 16)字节/ 100%填充系数= 403.46 GB

据我所知,我还需要一定数量的空间才能分类到tempdb,所以最终需要403.46 GB * 2 =〜807 GB来完成重建操作。

问题:

实际索引大小为1,051 GB。我已经在表的存储信息的“索引空间”行中看到了它,它是唯一的索引。

这怎么可能?为什么它没有接近403.46 GB?我的步骤正确吗?

谢谢。

0 个答案:

没有答案