SQL SERVER中,什么是填充因子?

ldg9tpl 2008-11-08 11:59:26
在建表的时候,有一个填充因子选项,其值默认为0%,请问各位大哥,能不能用形象的语言简单的说一下什么是填充因子?
哪些情况下要改变0这个默认值?什么情况下要把这个值设置得大一些,什么情况下又要设置得小一些呢?

谢谢,3Q了!
...全文
229 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenganghong 2011-02-15
  • 打赏
  • 举报
回复
学习到了。
linux_ch 2008-11-10
  • 打赏
  • 举报
回复
 简而言之,这个 填充因子 就是这个页面的 填充率 。我们老师以前给我的比喻,我都能理解,相信你也能。
這句話。。。。
dsdfds12 2008-11-10
  • 打赏
  • 举报
回复
hao
hyde100 2008-11-10
  • 打赏
  • 举报
回复
0和100的效果一样,默认情况下就为0,一般不需要改动

在 Microsoft SQL Server 数据库中,您可以标识填充因子来指定每个索引页可以填充的程度。填充因子是指在每个叶级页上要填充数据的空间的百分比,从而保留一定的可用空间以用于将来的扩展。例如,指定填充因子值为 80 表示在每个叶级页上将保留 20% 的可用空间,以便在向基础表添加数据时能为索引扩展提供空间。索引页上的可用空间量非常重要,因为当索引页填满后,系统必须花时间来拆分该索引页,以便为新行腾出空间。
qizhengsheng 2008-11-10
  • 打赏
  • 举报
回复
又学到东西了
-晴天 2008-11-09
  • 打赏
  • 举报
回复
一个数据页(8K)中如果能填充10条记录,如果让DBMS只填5条就转到下个页去,这个0.5就是填充因子.
设置填充因子的目的是由于聚集索引的索引顺序必须与记录排列顺序一至,因此在添加记录时,记录并不是直接添加到表的最后,而是插入到索引顺序所在的那一个数据页中指定的位置.这样一来,如果页未填充满,那在写入时就不需要重写整个表,只需要以后对表进行整理时再重写就行了.
当表不使用聚集索引,或不经常对表插入数据时,填充因子可以设置得高一些,反之亦然.
rucypli 2008-11-09
  • 打赏
  • 举报
回复
在创建和生成索引的时候用填充因子,填充因子使用得当可以减少索引内部外部碎片
hdzdw 2008-11-09
  • 打赏
  • 举报
回复
  就是数据页的填充率。简单而言,如果你一份很长的EXCEL的文档打印出来,里面有很多1000条记录。如果你每张纸都打印100条记录,要用10张纸。但是当你发现你要往第108条记录后面插入一条记录,那你要从第二面开始的所有页面全部重新打印。(也就是2到10的每一个页面的行都会向后移动).可是如果你每页同样是可以打100条的数据,你只让它打印80条行,剩余20行留空,下次再离到这样要插入的时候,你只需要把数据插到第2页,然后再新打印这第2页的内容。即使一下子要在第二页插入30行数据,影响的只是2,3页的表。(对于数据库而言,就可尽量少的移动记录,从而提高性能。)
  简而言之,这个 填充因子 就是这个页面的 填充率 。我们老师以前给我的比喻,我都能理解,相信你也能。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧