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

有没有更科学的方法来判断更准确 Fill Factor 价值?

有帮助吗?

解决方案

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

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

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

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

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

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

这是一种艺术形式。

我发现填充因子的一个好方法是将其视为地址簿中的页面 - 地址包装得越紧密,更改它们就越困难,但地址簿也越薄。我想我解释得更好 我的博客.

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top