0 或 100 的填充因子怎么可能相同?

Sub*_*bha 9 index database-tuning sql-server-2008-r2 index-tuning

据我了解,填充因子为 80 意味着每个叶级页面的 20% 将是空的,以实现未来的增长。我无法将 0 和 100 的填充因子如何相同!我错过了什么吗?

gbn*_*gbn 16

它是 SQL Server 2000 的遗产

0 和 100 当时是不同的

  • 100 表示“填充所有页面,包括所有 b 树索引级别”
  • 0 表示“在 b 树索引中在更高级别留出一些空间”

自 SQL Server 2005 起,两者均表示“填充所有页面,包括所有 b 树索引级别”

来自 BOL 的报价(我的粗体)

SQL Server 2000

填充因子值为 0 并不意味着页面的填充率为 0%。它的处理方式与填充因子值 100 类似,因为 SQL Server 创建具有完整数据页的聚集索引和具有完整叶页的非聚集索引。它与 100 的不同之处在于 SQL Server 在索引树的上层保留了一些空间。

SQL Server 2005

填充因子为 0 或 100 会创建具有完整数据页的聚集索引和具有完整叶页的非聚集索引,但它会在索引树的上层留下一些空间。填充因子值 0 和 100在所有方面都相同

我找不到在“行为改变”中明确显示这一点的东西