什么是索引和综述

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:05:35

确定了索引设计后,便可以在数据库的表上创建索引。

Microsoft® SQL Server™ 2000 自动创建唯一索引,以强制实施 PRIMARY KEY 和 UNIQUE 约束的唯一性要求。除非表中已存在聚集索引,或者显式指定了非聚集索引,否则将会创建一个唯一的聚集索引,以实施 PRIMARY KEY 约束。除非显式指定了聚集索引,否则,默认情况下创建唯一的非聚集索引以强制 UNIQUE 约束。

如果需要创建不依赖于约束的索引,可以使用 CREATE INDEX 语句。默认情况下,如果未指定聚集选项,将创建非聚集索引。

创建索引时须考虑的其它事项包括:

只有表的所有者可以在同一个表中创建索引。

每个表中只能创建一个聚集索引。

每个表可以创建的非聚集索引最多为 249 个(包括 PRIMARY KEY 或 UNIQUE 约束创建的任何索引)。

包含索引的所有长度固定列的最大大小为 900 字节。例如,不可以在定义为 char(300)、char(300) 和 char (301) 的三个列上创建单个索引,因为总宽度超过了 900 字节。

包含同一索引的列的最大数目为 16。
在使用 CREATE INDEX 语句创建索引时,必须指定索引、表以及索引所应用的列的名称。作为 PRIMARY KEY 或 UNIQUE 约束的一部分或使用 SQL Server 企业管理器创建的新索引,会根据数据库表的名称,自动获得系统定义的名称。如果在一个表上创建多个索引,这些索引的名称被追加 _1、_2 等。必要时可对索引重新命名。

说明 当前数据库正在备份时不能在其上创建索引。

如果在具有多个辅助索引的表上创建聚集索引,则必须重建所有辅助索引,使它们包含聚集键值而非行标识符 (RID)。同样,如果在具有多个非聚集索引的表上删除聚集索引,所有非聚集索引将作为 DROP 操作的一部分重建。这在大型表上会花很长时间。

在大型表上生成索引的首选方法是以聚集索引开始,然后生成非聚集索引。除去所有索引时,首先除去非