如何决定FILLFACTOR的值?

~ 0 min
2016-02-23 04:02

如何选择合适的FILLFACTOR值要根据具体情况而定,下面列出一些大致的规则,如果一个表符合下面的一条标准,请设置一个较大的FILLFACTOR值。

  1. 表很少更新。
  2. 记录大小基本上是固定的,也就是说,所有字段基本都是固定长度的和非空的。如果表的字段都是固定大小的,那么FILLFACTOR的值可以设为100.
  3. 以上两条都不满足,但是,频繁更新的字段大部分是固定长度的。

提供一些步骤计算下限,不过请注意,计算数据页的实际使用情况将是非常复杂的。这里提供的方法仅仅是给出一个快速而有效的方式来计算一个范围:

  1. 计算空值Empty:所有可以为空字段的空值和可变字段的空值。
  2. 计算满值Full:所有填满字段和满长字段。
  3. 然后,FILLFACTOR的值不应该小于50Empty/Full*100之间的较大值。

对大多数情况,理想的FILLFACTOR值应该在这个值与100之间,通过计算实际情况的Empty值可以缩小这个范围。

例如,

table1 {

     c1 int not null;

     c2 int;

     c3 char(20) not null;

     c4 varchar(12) not null;

}

在这个例子中,Empty = 4 + 0 + 20 + 0 = 24, Full = 4 + 4 + 20 + 12 = 40,所以,FILLFCATOR至少应该为24/40*100 = 60。

然而,如果c4被程序限制至少为6个字符(例如,密码长度),那么Empty的值应该为4 + 0 + 20 + 6 = 30,这样,FILLFACTOR的值应该不小于30/40*100=75.

对于BLOB/CLOB字段,使用8 字节(OID的大小)作为它们的大小。

平均分: 0 (0 投票)

你不能对该内容发表评论

标签