举个例子:假定你刚刚用缺省的填充因子新创建了一个索引。当sqlserver创建它时,它把索引放在相邻的物理页面上,因为数据能够顺序的读所以这样会有最优的i/o访问。但当表随着、、增加和改变时,发生了页拆分。当页拆分发生时,sqlserver必须在磁盘的某处分配一个新的页,这些新的页和最初的物理页不是连续的。因此,访问使用的是随机的i/o,而不是有顺序的i/o,这样访问索引页会变得更慢。
   
   那么理想的填充因子是多少呢?它依赖于应用程序对sqlserver表的读和写的比率。首要的原则,按照下面的指导:
   
   低更改的表(读写比率为100:1):100%的填充因子
   
   高更改的表(写超过读):50-70%的填充因子
   
   读写各一半的:80-90%的填充因子
   
   在为应用程序找到最优的填充因子前也不得不进行试验。不要假定一个低的填充因子总比高的好。低的填充因子会减少页拆分,它也增加了sqlserver查询期间读的页数量,从而减少性能。太低的填充因子不仅增加i/o开销,也影响缓存。当数据页从磁盘移到缓存中时,整个页(包括空的空间)都移到缓存中。所以填充因子越低,不得不移到sqlserver缓存中的页面就越多,意味着同时为其他重要数据页驻留的空间就少,从而降低性能。
   
   如果你没有指定填充因子,缺省的填充因子时0,意味着100%的填充因子(索引的叶页100%的填满,但索引的中间页有预留的空间)。
   
   作为监控的一部分,你要决定新建索引或重建索引时的填充因子是多少。事实上,除了只读数据库,所有的情况,缺省值0都是不适合的。相反,你想要一个填充因子保留合适的自由空间,按照上面的讨论来做。

转自:娃酷分类网:http://www.waaku.com/InfoView293270.html

转载于:https://www.cnblogs.com/mjlManong/p/5947563.html

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

  1. 数据库中索引的填充因子

    在创建聚集索引时,表中的数据按照索引列中的值的顺序存储在数据库的数据页中.在表中插入新的数据行或更改索引列中的值时,Microsoft® SQL Server™ 2000 可能必须重新组织表中的数据存 ...

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

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

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

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

  4. 一个关于sql server索引与填充因子的链接

    https://www.cnblogs.com/CareySon/archive/2012/01/06/2313897.html 转载于:https://www.cnblogs.com/rb258/p ...

  5. Sqlserver (优化Sqlserver数据库)页分裂 和填充因子

    页分裂 概念 不管是聚集索引 还是非聚集索引 我们在插入数据后 难免的会对数据增删改 那么我们涉及到一个问题 我们建立的索引会因为数据的变动 而变得混乱 比如 下面 聚集索引 如果我insert 了1 ...

  6. 数据库索引--SQL语句执行效率、分析及优化

    数据库表中字段上创建的索引,在写SQL语句进行查询时,索引可能会被使用到,也肯能因为SQL语句导致索引在此条SQL语句执行时索引无效. 聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索 ...

  7. T-SQL查询高级—SQL Server索引中的碎片和填充因子

        写在前面:本篇文章需要你对索引和SQL中数据的存储方式有一定了解.标题中高级两个字仅仅是因为本篇文章需要我的T-SQL进阶系列文章的一些内容作为基础. 简介 在SQL Server中,存储数据 ...

  8. 基准风险因子暴露度_具有性能基准SQL Server索引填充因子

    基准风险因子暴露度 In this article, we will study in detail about the how SQL Server Index Fill factor works. ...

  9. SQL SERVER索引原理及填充因子

    在SQL Server中,索引是按B树(平衡树)结构进行组织的,索引B树中的每一页称为一个索引节点,B树的顶端节点称为根节点,索引中的底层节点称为叶节点,根节点与叶节点之间的任何索引级别统称为中间级, ...

  10. SQL Server调优系列进阶篇(如何维护数据库索引)

    前言 上一篇我们研究了如何利用索引在数据库里面调优,简要的介绍了索引的原理,更重要的分析了如何选择索引以及索引的利弊项,有兴趣的可以点击查看. 本篇延续上一篇的内容,继续分析索引这块,侧重索引项的日常 ...

最新文章

  1. POJ 2388 Who's in the Middle
  2. hashmap是散列表吗_一篇文章教你读懂哈希表-HashMap
  3. 关于实现android状态栏沉浸的几种方法
  4. 再谈borland与MS对BUG的不同态度~
  5. Linux编译安装nginx1.4.7版本
  6. k-means算法原理及实战
  7. 常用MYSQL日期查询
  8. centos5.2 lamp安装指南
  9. 查询当天交易总额最大的用户信息_场内场外交易
  10. css点击按钮改变样式
  11. Rclone 连接 Google Drive
  12. vue 跳转html页面,vue项目实现页面的跳转
  13. 2021-07-24 centos基础设置
  14. ppt给图片增加高斯模糊_PPT图片处理小技巧
  15. 百度云直播的操作流程
  16. php 微信支付 退款接口,php实现微信支付之退款功能
  17. 百度被黑事件,成互联网最热话题
  18. 计算机音乐丑八怪乐谱,薛之谦《丑八怪》五线乐谱
  19. 网上书城项目的书籍分类列表展示及新书上架和热销书籍效果展示功能(项目进度四)
  20. 初探Swoft -- Swoft docker环境搭建

热门文章

  1. Qt设计精美的登录注册界面(包含SQLite数据库应用)
  2. Android 项目必备(二)--> 启动页 引导页
  3. Python实现两个有序集合的交集和并集
  4. python-shixian考拉兹猜想
  5. 跨年烟花 html 代码汇总
  6. 如何删除github上的文件夹(抖机灵方法)
  7. 你知道什么是真正的勇敢?
  8. 深圳大学计算机与科学考研科目,2020深圳大学计算机专业课不考408了
  9. call apply bind的作用和区别
  10. react 控制台 Maximum call stack size exceeded 如何解决