如何测量SQL填充因子值
时间:2020-03-05 18:39:36 来源:igfitidea点击:
通常,当我在表上创建索引时,我通常会根据对表将如何使用的有根据的猜测(很多读取或者许多写入)来猜测"填充因子"应基于什么。
是否有更科学的方法来确定更准确的"填充因子"值?
解决方案
回答
我们可以尝试运行大量实际操作,并查看IO队列中的不同操作。
有很多变量可以控制它,例如每行的大小以及写入与读取的数量。
基本上:高填充因子=读取速度更快,低=写入速度更快。
但是,它并不是那么简单,因为几乎所有写入都将写入需要首先查找的行的子集。
例如:将填充因子设置为10%,每次单行更新将花费10倍的时间才能找到要更改的行,即使分页的可能性很小。
通常,我们会看到填充系数从70%(非常高的写入)到95%(非常高的读取)。
这有点艺术形式。
我发现,考虑填充因子的一种好方法是,地址簿中的页面越紧密地包装地址,则更改地址就越困难,但是地址簿越薄。我想我在博客上解释得更好。
回答
我倾向于认为,如果我们追求性能改进,那么时间将更多地花在其他地方,调整架构,优化查询并确保良好的索引覆盖率。当我们知道系统中的其他所有功能都是最优的时,我们只需担心填充因子就是其中之一。我不知道有人可以这么说。