计算填充因子百分比如何与数据库大小相关?

Syl*_*ski 5 sql-server fill-factor sql-server-2014

我使用维护计划重建了我的数据库设置填充因子 95(5% 可用空间)中的所有索引。重新索引后,数据库的大小几乎翻了一番——报告的可用空间为 42%。

计算的填充因子如何与数据库的大小相关?

也许重新索引有问题;是什么导致了如此大的规模增长?

重新索引后的一些数据库信息:

Size (MB):            164 983.625
Data Space Used (KB):      82 907 896
Index Space Used (KB):     14 073 320
Space Available (KB):      71 879 024
Run Code Online (Sandbox Code Playgroud)

为一张表生成维护计划的T-SQL:

Size (MB):            164 983.625
Data Space Used (KB):      82 907 896
Index Space Used (KB):     14 073 320
Space Available (KB):      71 879 024
Run Code Online (Sandbox Code Playgroud)

附加信息:

的结果 sp_spaceused 'dbo.BigTable'

name        rows        reserved    data        index_size  unused
BigTable    58028080    72824296 KB 68393936 KB 4424000 KB  6360 KB
Run Code Online (Sandbox Code Playgroud)

sep*_*pic 6

你看到的是正确的。

当你rebuildindex第一个新index建成才把老index被丢弃。如果你不使用

SORT_IN_TEMPDB = ON
Run Code Online (Sandbox Code Playgroud)

服务器需要制作的空间sort在您的db

db现在有空的空间,它不是reserved任何空间object,它只是可用空间(在需要做的临时对象sort被删除后释放的空间)

所以,你的索引不是42%是空的,它是你的db就是42%是空的,如果你做shrinkdata file(我不建议这样做),你的数据库只会占用82Gb