8

通常,当我在表上创建索引时,我通常Fill Factor会根据对如何使用表的有根据的猜测(多次读取或多次写入)来猜测应该是什么。

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

4

2 回答 2

12

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

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

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

然而,它并不是那么简单,因为几乎所有的写入都将写入需要首先查找的行的子集。

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

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

这是一种艺术形式。

我发现考虑填充因子的一种好方法是作为地址簿中的页面 - 将地址打包得越紧,更改它们就越难,但书越薄。我想我在博客上解释得更好。

于 2008-08-14T12:16:03.770 回答
2

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

于 2008-08-14T12:49:32.597 回答