误区25:#对填充因子的误解
全错了。

25A)填充因子一直都存在
不,你可以看到通过图书在线(译者:我没在BOL新版本找到这个):
重要:
填充因子是有效的只有当创建或重新生成索引,和SQL Server存储引擎并不总是保证在页面的自由价值与填充因子一致。如果你保持填充因子为保持自由价值的页面并指定填充因子,它将失去意义。因为网页需要分页,即使他们不满意。

25 b)填充因子0和100是不同的。
错误,你可以从BOL看到一个句子
填充因子0和100在各方面都有意义。

25 C)在非叶节点保留空间中填充因子设置为0
这是错误的,这一点不说,波尔,我不知道这个误会是从哪里来的,但绝对是错误的。你可以确认通过以下代码:

复制代码代码如下所示:
创建数据库;

使用Foo;

创建表T1(C1国际身份,C2 char(1000)default'a);
创建聚集索引t1c1 T1(C1);

SET NOCOUNT ON;

插入到T1默认值;
去10000

然后填充因子设置为0,索引被重建。
复制代码代码如下所示:
选择从sys.indexes fill_factor } {
name = 't1c1'and { object_id } = object_id('t1);

改变T1指标t1c1重建(填充因子= 100);


上面的代码是通过查看的页面,该m_freecnt列是执行的价值,可用空间的页面中的价值:
复制代码代码如下所示:
执行sp_allocationmetadata't1;

DBCC TRACEON(3604);
DBCC PAGE(Foo,1, 164, 3);-根页面,从SP输出

DBCC PAGE(Foo,1, 162, 1);在DBCC的页ID页面输出以上




通过上面的代码,你可以看到,该值为10,即行业内没有预留空间。在这一点上,看到这个博客:这个博客,在上面的sp_allocationmetadata实施细则。