索引填充因子在大型表格上变得毫无意义了吗?

在工作中,我们有一个250GB的数据库和几个非常大的表。 其中一个每48小时运行一次的维护计划将在所有表上执行reindex。 这大约需要四个小时,目前正在审查中。

其中一个需要讨论的参数是我们应用于这些指标的填充因子。 当它们被创build和重build时,它们指定FILLFACTOR = 90。

我们有一个40GB的表,40GB的索引。 在FILLFACTOR = 90的情况下,我认为我们将在索引中拥有4GB的可用空间,考虑到桌子每天不会增长超过100MB(48小时为200MB),这似乎是一个非常糟糕的情况。 FILLFACTOR = 99(400mb自由索引空间)会降低INSERT性能吗?

假设对索引的更新是随机的(即在文章末尾指定的均匀分布 ),并且表数据上的相对较小的增量(例如10,000行中的每天更改1000万)对FILLFACTOR = 90 (4GB自由索引空间),还是应该使用FILLFACTOR = 99(给400MB自由索引空间)?

我会质疑整个reindex开始 – 给定的表大小等,这是没有什么意义,每隔一天。 每周/每月一次 – 好的,但不是每隔一天。

填充因子99可能会导致较小的整数 – 即使是随机的,分布也不会是完全一致的(即,将会有随机的簇)。 90%可能会留下太多的自由空间 – 95至97年可能会更好…

…但最后它不会有重大的不同。

build议:尝试一下。 绝对不会想到重新绑定。