我使用维护计划重建了我的数据库设置填充因子 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) 我正在使用 COTS 包在我的 SQL Server 产品组合中执行索引重建。不幸的是,该包没有为单个实例或数据库全局设置索引填充因子的选项(我可以在逐个索引的基础上安排重建时设置它们,但是有 1,600 多个索引,我想设置他们提前批量)。在 ALTER INDEX 命令之外,有没有办法重新定义现有的索引填充因子?
我有一个大的分区时间序列表,其中每个分区都存储在它自己的文件中。由于它是基于时间序列的分区按周划分,而且我只存储新数据,因此我一次积极写入的分区不超过 2 个。我在索引上将 FILLFACTOR 设置为 75,因为数据是随机输入的。
旧的数据分区占用了相当多的空间,仅使用了大约 60-70% 的空间。是否可以自动更改所述分区上的 FILLFACTOR,重建索引并缩小文件?由于我不再写入这些分区,因此它们的大小不应再增长。
我在 SQL Server express 中有一个用于票务系统的数据库。我四处寻找并注意到很多索引的填充因子设置为 20。它设置为 20 有什么意义?你为什么要把它定得这么低?