数码资讯
SQLServer误解30天约第二十五天的填充因素的误解
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
误区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实施细则。
全错了。
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实施细则。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。