index_option (Transact-SQL)

更新日期: 2005 年 12 月 5 日

指定一组可应用于某个索引的选项,该索引是使用 ALTER TABLE 创建的约束定义的一部分。

主题链接图标Transact-SQL 语法约定

语法

{ 
    PAD_INDEX = { ON | OFF }
  | FILLFACTOR = fillfactor
  | IGNORE_DUP_KEY = { ON | OFF }
  | STATISTICS_NORECOMPUTE  = { ON | OFF }
  | ALLOW_ROW_LOCKS= { ON | OFF }
  | ALLOW_PAGE_LOCKS={ ON | OFF }
  | SORT_IN_TEMPDB = { ON | OFF } 
  | ONLINE = { ON | OFF }
  | MAXDOP = max_degree_of_parallelism
}

参数

  • PAD_INDEX = { ON | OFF }
    指定索引填充。默认为 OFF。

    • ON
      FILLFACTOR 指定的可用空间百分比应用于索引的中间级页。
    • OFF 或不指定 fillfactor
      考虑到中间级页上的键集,可以将中间级页几乎填满,但至少要为最大索引行留出足够空间。
  • FILLFACTOR **=**fillfactor
    指定一个百分比,指示在数据库引擎创建或修改索引的过程中,应将每个索引页面的叶级填充到什么程度。指定的值必须是 1 到 100 之间的整数。默认值为 0。

    ms186869.note(zh-cn,SQL.90).gif注意:
    填充系数值 0 和 100 在所有方面都是相同的。
  • IGNORE_DUP_KEY = { ON | OFF }
    指定对唯一聚集索引或唯一非聚集索引的多行 INSERT 事务中重复键值的错误响应。默认为 OFF。

    • ON
      发出一条警告消息,但只有违反了 UNIQUE 索引的行才会失败。
    • OFF
      发出错误消息,并回滚整个 INSERT 事务。
    ms186869.note(zh-cn,SQL.90).gif注意:
    IGNORE_DUP_KEY 在 UPDATE 语句中不起任何作用。
  • STATISTICS_NORECOMPUTE = { ON | OFF }
    指定是否重新计算统计信息。默认为 OFF。

    • ON
      不会自动重新计算过时的统计信息。
    • OFF
      启用统计信息自动更新功能。
  • ALLOW_ROW_LOCKS = { ON | OFF }
    指定是否允许行锁。默认值为 ON。

    • ON
      在访问索引时允许行锁。数据库引擎确定何时使用行锁。
    • OFF
      不使用行锁。
  • ALLOW_PAGE_LOCKS = { ON | OFF }
    指定是否允许页锁。默认值为 ON。

    • ON
      在访问索引时允许页锁。数据库引擎确定何时使用页锁。
    • OFF
      不使用页锁。
  • SORT_IN_TEMPDB = { ON | OFF }
    指定是否将排序结果存储在 tempdb 中。默认为 OFF。

    • ON
      tempdb 中存储用于生成索引的中间排序结果。如果 tempdb 与用户数据库不在同一组磁盘上,就可缩短创建索引所需的时间。但是,这会增加索引生成期间所使用的磁盘空间量。
    • OFF
      中间排序结果与索引存储在同一数据库中。
  • ONLINE = { ON | OFF }
    指定在索引操作期间基础表和关联的索引是否可用于查询和数据修改操作。默认为 OFF。

    ms186869.note(zh-cn,SQL.90).gif注意:
    不能在线创建唯一的非聚集索引。这包括由于 UNIQUE 或 PRIMARY KEY 约束而创建的索引。
    • ON
      在索引操作期间不持有长期表锁。在索引操作的主要阶段,源表上只使用意向共享 (IS) 锁。这使得能够继续对基础表和索引进行查询或更新。操作开始时,在很短的时间内对源对象持有共享 (S) 锁。操作结束时,如果创建非聚集索引,将在短期内获取对源的 S(共享)锁;当联机创建或删除聚集索引时,以及重新生成聚集或非聚集索引时,将在短期内获取 SCH-M(架构修改)锁。对本地临时表创建索引时,ONLINE 不能设置为 ON。
    • OFF
      在索引操作期间应用表锁。创建、重新生成或删除聚集索引或者重新生成或删除非聚集索引的脱机索引操作将对表获取架构修改 (Sch-M) 锁。这样可以防止所有用户在操作期间访问基础表。创建非聚集索引的脱机索引操作将对表获取共享 (S) 锁。这样可以防止更新基础表,但允许读操作(如 SELECT 语句)。

    有关详细信息,请参阅联机索引操作的工作方式。有关锁的详细信息,请参阅锁模式

    ms186869.note(zh-cn,SQL.90).gif注意:
    联机索引操作只适用于 SQL Server 2005 Enterprise Edition。
  • MAXDOP = max_degree_of_parallelism
    在索引操作期间覆盖“最大并行度”配置选项。有关详细信息,请参阅max degree of parallelism 选项。使用 MAXDOP 可以限制在并行计划执行过程中使用的处理器数量。最大数量为 64 个处理器。

    max_degree_of_parallelism 可以是:

    • 1
      取消生成并行计划。
    • >1
      将并行索引操作中使用的最大处理器数量限制为指定数量。
    • 0(默认值)
      根据当前系统工作负荷使用实际的处理器数量或更少数量的处理器。

    有关详细信息,请参阅配置并行索引操作

    ms186869.note(zh-cn,SQL.90).gif注意:
    并行索引操作只适用于 SQL Server 2005 Enterprise Edition。

备注

有关索引选项的完整说明,请参阅 CREATE INDEX (Transact-SQL)

请参阅

参考

ALTER TABLE (Transact-SQL)
column_constraint (Transact-SQL)
computed_column_definition (Transact-SQL)
table_constraint (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发行日期 历史记录

2005 年 12 月 5 日

新增内容:
  • 在 ONLINE 选项的定义中添加了有关唯一非聚集索引的说明。