SQL Server表索引有一种使自己稀疏的特性,表越大并且访问越频繁,就越需要一个合适的调整因子。

SQL Server表索引的填充因子选项是最常见的针对索引的一种调优方法。索引的填充因子是一个百分比,用于告诉SQL Server每个叶级索引页可以填充多少索引数据,多少空间应该保留作为成长空间。如果基础表的列被修改或列被添加或在表中添加数据时,那么就会发生扩展。随着时间的推移索引碎片在增长,或者索引性能表现不佳,这是一个标志你可能需要调整最常用表的索引填充因子。问题是如何进行调整。

首先,你必须做的是避免发生这类状况,手动设置一个实例级的填充因子,也就是说填充因子将影响给定SQL Server实例中的所有表。原因很简单:每张SQL Server表都有自己的操作特性,有其自身的需要。填充因子默认设置为100% 。默认情况下,它可以随时间调整就像调整数据库性能一样。

第二件要记住的事情:有可能在很多实例中不需要调整填充因子。对只有几页的索引不必费心(使用DBCC SHOWCONTIG命令可知),反正这些索引都会被缓存起来。首先确认索引的最大页数和低扫描密度(使用DBCC SHOWCONTIG命令可知)。一个只有12页和50%密度的索引所产生的问题要远远小于一个有7000页和同样密度的索引。

第三,要明确需要调整多大,应该向什么方向调整,因为没有一个神奇数字可以满足所有的需求。填充因子设置太高,就会浪费大量的空间以及被拆分成单页。填充因子设置太低,数据库大小的增加会导致大量的输入/输出操作从而影响性能。

Randal建议开始的时候把70%作为默认值使用一个星期左右,然后根据变化的结果向上或向下调整这个值。在这方面SQL Server性能计数器Page Splits/sec就是一个很大的帮助;计数器值越高,越需要对SQL Server表索引进行调优。

也有人建议,填充因子的设置取决于有问题表的读/写率,低更新(频繁读)的表使用高填充因子,反之亦然。因此,填充因子值不应低于60%-70%,除非你有一些极不寻常的使用方案,一般情况下都是写的数量级多于读。

另一个建议是:如果只是将数据添加到表的末尾,那么填充因子不能设置为0或100%。根据我的经验,追加方式操作的表通常受益于90%的填充因子,如果没有大量的更新操作,只需要空出足够的索引成长空间即可。

SQLTeam.com的Tara Kizer也谈到填充因子的更改如何会降低SELECT的性能,以及任何更改填充因子的动作必须要有定期的数据库性能审计。

mysql的填充因子_SQL Server表索引:调整填充因子相关推荐

  1. mysql水平分区方案_SQL Server表分区(水平分区及垂直分区)

    什么是表分区? 表分区分为水平表分区和垂直表分区,水平表分区就是将一个具有大量数据的表,进行拆分为具有相同表结构的若干个表:而垂直表分区就是把一个拥有多个字段的表,根据需要进行拆分列,然后根据某一个字 ...

  2. mysql查看索引创建进度_SQL Server查看索引重建、重组索引进度

    相信很多SQL Server DBA或开发人员在重建或重组大表索引时,都会相当郁闷,不知道索引重建的进度,这个对于DBA完全是一个黑盒子,对于系统负载非常大的系统或维护窗口较短的系统,你会遇到一些挑战 ...

  3. mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  4. sql server 群集_SQL Server群集索引概述

    sql server 群集 This article targets the beginners and gives an introduction of the clustered index in ...

  5. MYSQL查看某个数据库下所有表索引的数据量及占用空间大小

    查询某个库下所有表&索引的数据量及占用空间大小 SELECTtable_schema AS '数据库',table_name AS '表名',table_rows AS '记录数',TRUNC ...

  6. html防止浏览器表单自动填充,禁止浏览器input表单自动填充

    最近开发遇到了一个令人头疼的事儿--浏览器input表单的自动填充行为.在type类型是password附近的input都会被自动填充上信息.这个是不程序行为,而是浏览器自动填充. 对于这个功能我深恶 ...

  7. 360 html禁止自动填充,360浏览器的表单自动填充设置在哪?360浏览器自动填充表单的问题怎么解决?...

    360浏览器的表单自动填充设置在哪?360浏览器自动填充表单的问题怎么解决? 很多用户都遇到了360浏览器自动填充表单的问题,那么怎么解决呢?今天带来360浏览器自动填充表单的问题解决方法分享. 开发 ...

  8. sql server 表索引碎片处理

    DBCC SHOWCONTIG (Transact-SQL) SQL Server 2005 其他版本 更新日期: 2007 年 9 月 15 日 显示指定的表或视图的数据和索引的碎片信息. 重要提示 ...

  9. [MySQL FAQ]系列 -- 快速还原MyISAM表索引

    作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 假设有个myisam表:tbl,为了备份方便,直接把 frm 和 ...

  10. mysql 事务日志备份_SQL Server恢复模式与事务日志备份

    在SQL Server中,数据库不能像Oracle数据库一样设置归档模式,但是可以进行事务日志备份,其作用等同于Oracle数据库的日志文件归档. SQL Server 备份和还原操作发生在数据库的恢 ...

最新文章

  1. java开发环境变量配置-JDK11-(win10),重启之后环境变量配置失效的解决办法
  2. 安卓重要组件#1--ListView创建及基本的使用方法
  3. zoj 2874 amp; poj 3308 Paratroopers (最小割)
  4. 【LOJ】#2066. 「SDOI2016」墙上的句子
  5. 浅析dedecms织梦网站留言板提交时验证码错误的解决办法
  6. vs2010中MEX文件建立与调试
  7. linux中java 里面启动 重启 停止jar 的 shell
  8. OSPF NSSA 默认路由的问题
  9. 3.SOA架构:服务和微服务分析及设计--- 理解服务与微服务的层次
  10. -离散数学-期末练习题解析
  11. MATLAB符号运算
  12. 魏俊妮《如何成为支持业务的HR》课程大纲
  13. cpu计算机性能指标有哪些,CPU性能指标有哪些
  14. 敏捷-《如何准备ACP考试》知识图谱
  15. 拿中国互联网的两个航母说事(一)--腾讯战略
  16. 重磅:腾讯低代码平台正式开源!可拖拽生成手机、PC等项目!接私活福利啊!...
  17. 最强蜗牛换了手机找不到服务器,最强蜗牛服务器无响应怎么办 最强蜗牛进不去解决方法...
  18. 数据库设计----概念结构设计(概念模型、E—R模型、概念结构设计)
  19. 怎么把PS界面语言变成英文方法教程
  20. matlab——repmat函数的理解及用法

热门文章

  1. mysql rename数据库_为什么现在MySQL无法重命名数据库?
  2. python从键盘输入一个字符串将小_python如何从键盘获取输入实例
  3. 浏览器主页被hao123劫持之解决方案
  4. CTeX 中文 beamer 模板
  5. Java实现合成图片
  6. apt-get update “the following signatures couldn’t be verified because the public key is not avail
  7. 全球及中国军用海岸雷达行业研究及十四五规划分析报告
  8. wireshark排查网络延迟问题
  9. iPhone【未能激活蜂窝数据网:您尚未订购蜂窝数据服务】解决!
  10. QT visual assist x不能稳定工作