如何衡量SQL填充因子值

时间:2008-08-14 12:07:28

标签: sql-server fillfactor

通常当我在表上创建索引时,我通常会猜测Fill Factor应该基于对表的使用方式的有根据的猜测(许多读取或多次写入)。

是否有更科学的方法来确定更准确的Fill Factor值?

2 个答案:

答案 0 :(得分:12)

您可以尝试运行大量实际操作,并查看IO队列以了解不同的操作。

有许多变量可以控制它,例如每行的大小以及写入与读取的次数。

基本上:高填充因子=更快读取,低=更快写入。

然而,这并不是那么简单,因为几乎所有的写操作都是针对需要首先查找的行的子集。

例如:将填充因子设置为10%,每个单行更新将花费10倍的时间来查找它正在更改的行,即使页面拆分也不太可能。

通常,您会看到填充因子70%(非常高的写入)到95%(非常高的读数)。

这是一种艺术形式。

我发现填充因子的一种好方法就像地址簿中的页面一样 - 你打包地址的次数越多,改变它们就越难,但本书越薄。我想我在my blog更好地解释了它。

答案 1 :(得分:2)

我倾向于认为,如果您在性能方面有所改进,那么您在其他地方花费的时间会更好,调整架构,优化查询并确保良好的索引覆盖率。当您知道系统中的其他所有内容都是最佳时,填充因子就是您需要担心的事情之一。我不知道有谁可以这么说。