SqlServer2008实例30索引选项之使用PAD_INDEX和FILLFACTOR

   索引的填充因子百分比是指首次创建索引时索引页的叶级别充满程度。如果没有显式设置填允因子,则它默认为0,即尽最大可能来填充页(SQL Serve浍保留一些可用空间——讨于单个索引行足够了)。然而保留一些可用空间允许插入新行时不拆分页。添加新行到充满的索引页会引发页拆分。为了得到空间,会从既有的充满的页移动一半的行到新页。大量的页拆分会减慢INSERT操作。但是另一方面,充满的数据页允许更快的读取活动,因为数据库引擎可以从更少的数据页中检索更多的行。
    PAD_INDEX选项只用来连接FILLFACTOR,它指定在索引的qJ间页级别页打开的自由空间特定的百分比。
    这些选项在CREATE INDEX和ALTER I NDEX命令的WITH子句中设置。语法如下:
    WITH (PAD_ INDEX=(ON  | OFF)
      | FILLFACTOR=fillfactor)
   例如,使用填充因子50%并启用PAD_INDEX来删除并重建索引:

USE AdventureWorks
GO

DROP INDEX
HumanResources.TerminationReason.NI_TerminationReason_TerminationReason_DepartmentID

CREATE NONCLUSTERED INDEX NI_TerminationReason_TerminationReason_DepartmentID
ON Humanresources.TerminationReason
(TerminationReason ASC,DepartmentID ASC)
WITH (PAD_INDEX=ON,FILLFACTOR=50)

    这个例子中,填充因子配置为50%,为新行保留50%的索引页自由空间。同时也启用了PAD_INDEX,因此中间索引页也将保留一半的自由空间。两个选项都用在了CREATE INDEX中的WITH子句中。
    使用FILLFACTOR是读与写之间的一个平衡操作。例如,100%的填充因子可以提升读取的性能,但是会减慢写活动的性能,引发频繁的页拆分,因为数据库引擎为了在数据页巾得到空间必须持续地交换行的位置。太低的填充因了会给行插入带来益处,但它也会减慢读取操作,因为要检索所有需要的行必须访问更多的数据页。经验做法是,为几乎没有数据修改活动的表使用100%填充凶子,低活动的使用80%~90%,中等活动的使用60%~70%,为索引键上的高活动使用50%或更低的百分比。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值