zoukankan      html  css  js  c++  java
  • 如何检查SQL Server索引填充因子

      假如您有一个盛满水的玻璃杯,您要尝试再向这个玻璃杯中加水。结果会怎样呢?水会溢出来。

      SQL Server 的情况也是如此。当索引页填充满时,如果尝试添加新行,则 SQL Server 会将大约一半的行移动到新页,以便为新添加的行腾出空间。这就是通常所说的“页面分割”。页面分割可为新记录腾出空间,但却既费时又非常耗费资源,并且会产生碎片,从而可能对 I/O 操作产生负面影响。那么,如何避免此类情况呢?

      要防止此类情况的发生,必须主动确定填充因子值。创建或重新构建索引后,填充因子值会确定每个叶级页中用于填充数据的空间百分比,其余部分留作将来扩充之用。例如,将填充因子值配置为 60 就意味着每个叶级页的 40% 都是空的,以便在向基础表中添加数据时为索引扩展提供空间。

      默认填充因子值始终是 0,此值对大多数情况都适用。一般来讲,填充因子值为 0 意味着叶级别几乎已填满,但留出了一些空间,至少能再添加一个索引行。(请注意,填充因子为 0 和 100 是相似的。)

      您可以在 CREATE INDEX 或 ALTER INDEX 语句中设置各个索引的填充因子值,也可以直接在服务器级别上配置此值,以便所有新建索引都使用默认值。

      以下示例在服务器级别将填充因子值设置为 70%,这就意味着您将有 30% 的可用空间供以后扩展使用。当然,在实施到生产环境前,必须先认真测试此选项。

      USE Master; GO SP_Configure 'show advanced options',1; GO SP_Configure 'Fill Factor', 70; GO --必须重新启动 SQL Server 引擎以使更改生效。

      如果您希望在单个索引级别上配置填充因子,应如何操作呢?假设您正在构建下表,并希望对名为 Col_A 的列创建唯一索引,且填充因子值为 70。此时该命令应类似于下面的命令:

  • 相关阅读:
    (转)iOS分类和扩展(Categories和Extensions)
    (转)在Android的webview中定制js的alert,confirm和prompt对话框的方法
    (转)20 个大大节省你时间的 HTML5 开发工具
    (转)UIWebView与JavaScript的那些事儿
    ios调打电话代码
    iOS打电话、发邮件、发短信、打开浏览器
    (转)常见证书格式和转换
    (转)实战p12文件转pem文件
    (转)iOS如何取得APP的版本信息跟服务器对比进行升级提示?
    添加首部元素
  • 原文地址:https://www.cnblogs.com/firstdream/p/7931103.html
Copyright © 2011-2022 走看看