关于sql server:如何测量SQL填充因子值

关于sql server:如何测量SQL填充因子值

How do you measure SQL Fill Factor value

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

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


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

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

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

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

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

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

这有点艺术形式。

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


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


推荐阅读