SQL Server 填充因子
在创建聚集索引时,表中的数据按照索引列中的值的顺序存储在数据库的数据页中。在表中插入新的数据行或更改索引列中的值时,Microsoft® SQL Server™ 2000 可能必须重新组织表中的数据存储,以便为新行腾出空间,保持数据的有序存储。这同样适用于非聚集索引。添加或更改数据时,SQL Server 可能不得不重新组织非聚集索引页中的数据存储。向一个已满的索引页添加某个新行时,SQL Server 把大约一半的行移到新页中以便为新行腾出空间。这种重组称为页拆分。页拆分会降低性能并使表中的数据存储产生碎片。有关更多信息,请参见表和索引构架。
创建索引时,可以指定一个填充因子,以便在索引的每个叶级页上留出额外的间隙和保留一定百分比的空间,供将来表的数据存储容量进行扩充和减少页拆分的可能性。填充因子的值是从 0 到 100 的百分比数值,指定在创建索引后对数据页的填充比例。值为 100 时表示页将填满,所留出的存储空间量最小。只有当不会对数据进行更改时(例如,在只读表中)才会使用此设置。值越小则数据页上的空闲空间越大,这样可以减少在索引增长过程中对数据页进行拆分的需要,但需要更多的存储空间。当表中数据会发生更改时,这种设置更为适当。
提供填充因子选项是为了对性能进行微调。但是,使用 sp_configure 系统存储过程指定的服务器范围的默认填充因子,在大多数情况下都是最佳的选择。
说明 即使对于一个面向许多插入和更新操作的应用程序来说,数据库读取次数一般也超过数据库写入次数的 5 到 10 倍。因此,指定一个不同于默认设置的填充因子会降低数据库的读取性能,而降低量与填充因子设置值成反比。例如,当填充因子的值为 50% 时,数据库的读取性能会降低两倍。
只有当在表中根据现有数据创建新索引,并且可以精确预见将来会对这些数据进行哪些更改时,将填充因子选项设置为另一个值才有用。
填充因子只在创建索引时执行;索引创建后,当表中进行数据的添加、删除或更新时,不会保持填充因子。如果试图在数据页上保持额外的空间,则将有背于使用填充因子的本意,因为随着数据的输入,SQL Server 必须在每个页上进行页拆分,以保持填充因子指定的空闲空间百分比。因此,如果表中的数据进行了较大的变动,添加了新数据,可以填充数据页的空闲空间。在这种情况下,可以重新创建索引,重新指定填充因子,以重新分布数据。
为索引指定填充因子
可标识填充因子来指定每个索引页的填满程度。索引页上的空余空间量很重要,因为当索引页填满时,系统必须花时间拆分它以便为新行腾出空间。
创建索引时很少需要指定填充因子。提供该选项是用于微调性能。在包含现有数据的表上创建新索引时,尤其是当能精确预测那些数据以后的改变时,该选项很有用。
为表上的索引指定填充因子
在数据库关系图中,右击包含要为其指定填充因子的索引的表,然后从快捷菜单中选择"属性"命令。
-或-
为包含要为其指定填充因子的索引的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。
选择"索引/键"选项卡。
从"选定的索引"列表中选择索引。
在"填充因子"框中键入一个介于 0 到 100 之间的百分比。
为视图上的索引指定填充因子
为包含要为其指定填充因子的索引的视图打开视图设计器,在视图设计器中右击,然后从快捷菜单中选择"管理索引"命令。
从"选定的索引"列表中选择索引。
在"填充因子"框中键入一个介于 0 到 100 之间的百分比。
SQL Server 填充因子的更多相关文章
- sql 索引 填充因子(转)
和索引重建最相关的是填充因子.当创建一个新索引,或重建一个存在的索引时,你可以指定一个填充因子,它是在索引创建时索引里的数据页被填充的数量.填充因子设置为100意味着每个索引页100%填满,50%意味 ...
- 转: SQL Server索引的维护 - 索引碎片、填充因子
转:http://www.cnblogs.com/kissdodog/archive/2013/06/14/3135412.html 实际上,索引的维护主要包括以下两个方面: 页拆分 碎片 这两个问题 ...
- SQL Server索引的维护 - 索引碎片、填充因子 <第三篇>
实际上,索引的维护主要包括以下两个方面: 页拆分 碎片 这两个问题都和页密度有关,虽然两者的表现形式在本质上有所区别,但是故障排除工具是一样的,因为处理是相同的. 对于非常小的表(比64KB小得多), ...
- 如何检查SQL Server索引填充因子
假如您有一个盛满水的玻璃杯,您要尝试再向这个玻璃杯中加水.结果会怎样呢?水会溢出来. SQL Server 的情况也是如此.当索引页填充满时,如果尝试添加新行,则 SQL Server 会将大约一半的 ...
- SQL SERVER之填充因子
建SQL SERVER索引的时候有一个选项,即Fillfactor(填充因子). 这个可能很少人会去注意它,但它也是比较重要的.大家可能也都知道有这个东西,但是如何去使用它,可能会比较迷糊.另外,即使 ...
- T-SQL查询高级—SQL Server索引中的碎片和填充因子
写在前面:本篇文章需要你对索引和SQL中数据的存储方式有一定了解.标题中高级两个字仅仅是因为本篇文章需要我的T-SQL进阶系列文章的一些内容作为基础. 简介 在SQL Server中,存储数据 ...
- SQL SERVER 之 填充因子
填充因子依附索引而存在,但创建索引,就意味着要对表进行DML时,必须处理额外的工作量(也就是对索引结构的维护)以及存储方面的IO开销. 所以创建索引时,需要考虑创建索引所带来的查询性能方面的提高,与引 ...
- sql server 索引阐述系列七 索引填充因子与碎片
一.概述 索引填充因子作用:提供填充因子选项是为了优化索引数据存储和性能. 当创建或重新生成索引时,填充因子的值可确定每个叶级页上要填充数据的空间百分比,以便在每一页上保留一些剩余存储空间作为以后扩展 ...
- SQL Server 2008 R2【SET ANSI_PADDING填充属性】插入一条数据后,为何每一列都默认的在字符后多了几个空格
当加入空格后查出 解决: 导致出现这样的现象的原因就是SET ANSI_PADDING选项. 这个选项只在数据表的字符串字段被更新或者新的数据行插入到表中的时候作用.它控制着SQL Server在遇到 ...
随机推荐
- 反射:newInstance()的使用方式
通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance( ...
- InetAddress 类简介
package javanet; import java.net.InetAddress; import java.net.UnknownHostException; public class dem ...
- eclipse安装cppcheck
简介: cppcheck 是一个 c 和 c++ 的静态的代码检查分析工具,不用运行程序就可以进行代码的检测. 可以检测一般的内存泄漏和程序编码错误 0.安装 cppcheck 1.57版本,这个版 ...
- iOS内购流程二(添加产品、沙盒账号以及上架流程)
注意:使用了IAP的App必须先配置好协议.税务和银行业务 一.创建一个App应用 1.登录iTunes Store,点击我的App 2.新建一个App(如果App已经创建,直接点击App进入就行了) ...
- HDU 1506【单调栈】
思路: 转化成对于某一位置为最小值求向两边最远>=他的位置,用单调栈就能轻易完成. 那么ans=(left+right)*h[i]; 维护单调递增还是递减呢? 我们能很快反应到,一旦碰到一个比他 ...
- 3dmax导出缩放
参考 http://blog.dou.li/unity3d-import-3dmax-model-scale.html http://blog.csdn.net/pdw_jsp/article/det ...
- JAVA之动态编译
通过Java动态生成class文件 今天说下JAVA中的动态编译,这个功能根据我现在的了解好像没有见到过用的,我Jio的吧,现在的一些在线代码编缉器可以用到了,这个具体我也不是很清楚.感兴趣的大家可以 ...
- VxWorks实验六 基于优先级的抢占式调度及实验的源程序和实验步骤
基于优先级的抢占式调度及实验的源程序和实验步骤 1 实验目的 1.学习并验证基于优先级的抢占式调度2 实验内容 在实验一建立的 project 中,创建3 个任务,对这三个任务使用基于优先 ...
- Visiual Studio CLR20r3问题
原文转自:http://blog.sina.com.cn/s/blog_3f2ef11801013p8c.html(刘帝勇的大观园) 看到有更新,习惯性的点了,升级到Visiual Studio Ul ...
- ZROI WC Round5 题解
ZROI WC Round5 题解 Problem A 题意 给定一个长度为 \(n\) 的序列,操作是交换两个相邻的数,要求将序列变成先单调不降再单调不升,求最小操作数,注意可以完全单调不降或者完全 ...