首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >填充因子和索引

填充因子和索引
EN

Stack Overflow用户
提问于 2013-09-24 02:05:46
回答 1查看 435关注 0票数 0

我有点困惑。如果我将填充因子设置为50%,那么sql引擎将为将来的增长留出一半的空间,因此数据将存储在datepages中,最大为4KB (大约),因为页面最大大小为8KB。此外,填充因子仅适用于重新生成索引。请澄清我对上述方案的疑虑。任何帮助都将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 02:21:00

DBA和开发人员经常读到,降低填充因子可以通过减少页面拆分来提高性能。也许他们正在尝试解决性能问题,或者他们觉得自己很偏执。它们要么在某些索引上降低了太多填充因子,要么对所有索引应用填充因子更改。

独家新闻: 100%的默认填充因子并不总是好的,这是真的。如果我将页面填满,然后返回并需要在该页面上插入一行,它将不适合。为了使数据适合并保留索引的逻辑结构,SQL Server必须执行一系列复杂的操作(一种“糟糕”的分页类型),包括:

1)添加新页面。

2)将大约一半的数据移动到新页面。

3)标记在旧页面上移动的数据,使其不再有效。

4)更新现有页面上的页面链接指针以指向新页面,是的,这是一项大量的工作。

它会生成日志记录并导致额外的IO。是的,如果这种情况经常发生,您可能希望降低该索引中的填充因子,以帮助减少这种情况的发生。

设置过滤因子的最佳实践

这里有一些关于如何安全设置填充因子的简单建议:

1)不要设置填充因子的系统全局值。这不太可能对你的表现有更大的帮助,而不是伤害。

2)获得一个良好的索引维护解决方案,该解决方案可以检查索引碎片,并且只作用于碎片相当严重的索引。将解决方案记录到一个表中。查找经常碎片化的索引。考虑使用计划更改来重新构建索引,逐步降低这些单个索引上的填充因子。当您第一次降低填充因子时,请考虑在重新运行一到两周的维护后,只需转到95并重新评估该指数。(根据您的SQL Server版本,重建可能需要脱机完成。不能使用重新组织来设置新的填充因子。)

第二种选择可能听起来很挑剔,但在大多数环境中,它只需要几分钟就能找出您需要在哪里进行更改。你可以一个月做一次。这是值得的-因为没有人希望他们的数据库性能下降,并意识到他们在内存中留下了不必要的in空间,从而导致了额外的IO。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18965898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档