在创建聚集索引时,表中的数据按照索引列中的值的顺序存储在数据库的数据页中。在表中插入新的数据行或更改索引列中的值时,Microsoft® SQL Server™ 2000 可能必须重新组织表中的数据存储,以便为新行腾出空间,保持数据的有序存储。这同样适用于非聚集索引。添加或更改数据时,SQL Server 可能不得不重新组织非聚集索引页中的数据存储。向一个已满的索引页添加某个新行时,SQL Server 把大约一半的行移到新页中以便为新行腾出空间。这种重组称为页拆分。页拆分会降低性能并使表中的数据存储产生碎片。

创建索引时,可以指定一个填充因子,以便在索引的每个叶级页上留出额外的间隙和保留一定百分比的空间,供将来表的数据存储容量进行扩充和减少页拆分的可能性。填充因子的值是从 0 到 100 的百分比数值,指定在创建索引后对数据页的填充比例。值为 100 时表示页将填满,所留出的存储空间量最小。只有当不会对数据进行更改时(例如,在只读表中)才会使用此设置。值越小则数据页上的空闲空间越大,这样可以减少在索引增长过程中对数据页进行拆分的需要,但需要更多的存储空间。当表中数据会发生更改时,这种设置更为适当。

提供填充因子选项是为了对性能进行微调。但是,使用 sp_configure 系统存储过程指定的服务器范围的默认填充因子,在大多数情况下都是最佳的选择。

说明 即使对于一个面向许多插入和更新操作的应用程序来说,数据库读取次数一般也超过数据库写入次数的 5 到 10 倍。因此,指定一个不同于默认设置的填充因子会降低数据库的读取性能,而降低量与填充因子设置值成反比。例如,当填充因子的值为 50% 时,数据库的读取性能会降低两倍。

只有当在表中根据现有数据创建新索引,并且可以精确预见将来会对这些数据进行哪些更改时,将填充因子选项设置为另一个值才有用。

填充因子只在创建索引时执行;索引创建后,当表中进行数据的添加、删除或更新时,不会保持填充因子。如果试图在数据页上保持额外的空间,则将有背于使用填充因子的本意,因为随着数据的输入,SQL Server 必须在每个页上进行页拆分,以保持填充因子指定的空闲空间百分比。因此,如果表中的数据进行了较大的变动,添加了新数据,可以填充数据页的空闲空间。在这种情况下,可以重新创建索引,重新指定填充因子,以重新分布数据。

数据库中索引的填充因子相关推荐

  1. sql索引的填充因子多少最好,填充因子的作用?

    当创建一个新索引,或重建一个存在的索引时,你可以指定一个填充因子,它是在索引创建时索引里的数据页被填充的数量.填充因子设置为100意味着每个索引页100%填满,50%意味着每个索引页50%填满. 如果 ...

  2. 数据库中索引(index)介绍

    本文主要介绍数据库中索引(index)的相关知识. 1 概述 1.1 What 数据库中的索引(index),是数据库管理系统(DBMS)中的一个排序的数据结构,用于协助快速查询.更新数据库表中的数据 ...

  3. 聚集索引和填充因子fill factor的设置,减少死锁

    我的数据库很容易死锁,我后来发现是聚集索引引起的,我的索引填充因子是90,后来我把聚集索引去掉,问题就解决了,但是我不明白聚集索引为什么会引起死锁?? 你的填充因子设置得不对         聚集索引 ...

  4. 面试题(一)- 谈谈你对数据库中索引的理解

    转载自<http://www.cnblogs.com/newpanderking/p/3781043.html> 1.首先要明白无名无实莫要用索引:因为数据中的记录很多,为了方便我们查找, ...

  5. 二、谈谈对数据库中索引的理解

    索引结构 索引的类型 主存储格式 索引类型 基于磁盘的行存储 聚集.非聚集.唯一.Filtered 列存储 聚集列存储.非聚集列存储 内存优化 哈希.内存优化非聚集 行存储 行存储是存储关系表数据的传 ...

  6. Oracle数据库中索引的维护

    本文只讨论Oracle中最常见的索引,即是B-tree索引.本文中涉及的数据库版本是Oracle8i. 一. 查看系统表中的用户索引 在Oracle中,SYSTEM表是安装数据库时自动建立的,它包含数 ...

  7. 数据库中索引的优缺点和分类

    1.索引的概念 索引就是为了提高数据的检索速度.数据库的索引类似于书籍的索引. 在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程序迅速地找到表中的数据, ...

  8. mysql数据库中 索引的作用是什么意思_什么是数据库索引,索引有什么作用

    数据库索引是为了增加查询速度而对表字段附加的一种标识.见过很多人机械的理解索引的概念,认为增加索引只有好处没有坏处.这里想把之前的索引学习笔记总结一下: 首先明白为什么索引会增加速度,DB在执行一条S ...

  9. Sqlite数据库中索引的使用、索引的优缺点

    要使用索引对数据库的数据操作进行优化,那必须明确几个问题: 1.什么是索引 2.索引的原理 3.索引的优缺点 4.什么时候需要使用索引,如何使用 围绕这几个问题,来探究索引在数据库操作中所起到的作用. ...

最新文章

  1. android 自定义相册选择,Android通过手机拍照或从本地相册选取图片设置头像
  2. Android QQ、微信聊天消息界面设计原理与实现
  3. 【C#文件锁】C#加密解密文件小工具
  4. android 首页6个碎片,Android 单帧碎片
  5. a标签缺少href 属性,鼠标经过不会出现手型
  6. 【渝粤教育】电大中专电商运营实操12作业 题库
  7. Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector
  8. jQuery控件简易日历表格
  9. 人事管理系统为你解剖JSP
  10. 【机器学习系列】变分推断第二讲:基于Mean Field的变分推断解法
  11. 【数据技术】利用Python获取高德地图POI数据——以上海瑞幸门店为例
  12. java 商品库存修改
  13. 敏捷开发vs 传统开发
  14. android捕获全局异常lin,全局获取 (Activity)Context,实现全局弹出 Dialog
  15. PSP游戏开放环境的建立
  16. 【Java MySQL】 009 JDBC
  17. 新品发布-T3M系列宽带高速MIMO Mesh自组网电台
  18. [日推荐]『youhui优惠券』领点优惠券再去买买买!
  19. Win10家庭版账户名变更方法
  20. 如何打开安卓手机的开发者模式/开发者选项,进行安卓开发真机调试

热门文章

  1. 编程设计一个基于条件风险最小的Bayes分类器
  2. springboot配置进行https请求访问demo
  3. php正则表达式(手册)
  4. 服务器系统防火墙设置在哪里设置方法,服务器怎么设置防火墙设置在哪里
  5. 国外不错的网站(类似知乎)
  6. C++ 中scanf的返回值
  7. 阿里云服务器安装tomcat
  8. C#中在鼠标经过Button控件时显示提示信息(弹出气泡提示框)
  9. 成功的在项目中使用Squirrel
  10. Word: 是否将更改保存到WordCmds.dot中?