sql-server - EmailAddress 列上非聚集索引的填充因子?
问题描述
我试图弄清楚对于诸如 EmailAddress 之类的列的非聚集索引来说,理想的填充因子是多少。如果我有一个经常添加的 Person 表,则填充因子为 0 会导致索引严重碎片化,因为每个新人在这里都有一个基本上随机的值。就我而言,数据经常被写入和读取,但我们几乎没有更改或删除。是否有关于填充因子索引这些类型的列的任何指南?
解决方案
除非您重建索引,否则填充因子无关紧要。具有“随机”插入点的索引将生成页面拆分,并且自然会在页面上保留空间以容纳新行,因为拆分页面最终会占满 50%。
如果您确实重建了这样一个索引(通常没有理由这样做),那么请考虑使用填充因子,这样您就不会删除页面上的所有可用空间,这会导致重建后出现一系列页面拆分,结束其结果将类似于(但比)使用填充因子重建。
根据经验,60-75 是一个合理的选择。
推荐阅读
- c++ - 将 QString 转换为 QJsonArray
- android - 工具栏阴影不显示
- r - 为什么 data.table j 在直接调用 mget() 与在另一个函数中调用 mget() 时有不同的环境?
- javascript - 如何防止 UIkit 模态在某些加载过程中关闭?
- html - 为什么部分推荐没有正确放置
- angular - 用可观察的流替换嵌套的 promise.all 以在数组上聚合
- python - 无法读取在线提供的 pdf 文件的特定页面的内容
- php - 使用 domcrawler (Goutte) 获取抓取图像的大小
- php - 不能一次修改一次而不会出现奇怪的错误
- html - 修改另一个元素的 CSS 悬停效果不起作用