索引管理

在 SQL Server 中管理索引有三种方法:

¨ SQL 语句

¨ 使用【建立索引向导】

¨ 使用【企业管理器】

1 SQL 语句

CREATE INDEX 语句的语法如下:

CREATE [ UNIQUE ]

[ CLUSTERED | NON CLUSTERED]

INDEX < 索引名 >

ON < 表名 > ( < 列名 > [,< 列名 > … ] )

其中:

¨ < 索引名 > 是新建索引的名称。在一个数据库中,索引名是唯一的。

¨ < 表名 > 是建立索引的表名。

¨ < 列名 > 作为索引项的列名,可以是多个列。

只有对表具有建立索引权限的用户才能对该表建立索引。

例 7.16 在职工表上建立一个以工作日期为索引项的索引 gzrq_index ,则使用下列 SQL 语句:

create index gzrq_index

on zhigong (gzrq)

因为有可能多个职工的工作日期是一样的,所以最好不要建立唯一索引,即不使用 unique 关键字。如果在 “ 工作日期 ” 列使用了唯一索引,那么同年、同月、同日到本单位工作的职工只能有一名职工的信息进入职工表,其他的职工信息是不能插入表中。

例 7.17 在职工表上建立一个以姓名、工资为索引项的组合索引 mcgz_index ,则使用下列 SQL 语句:

create index mcgz_index

on zhigong (zgmc,gz)

删除索引使用 DROP INDEX 语句,其语法如下:

DROP INDEX < 索引名 >

其中 < 索引名 > 是要删除的索引名。

例 7.18 删除前面所建立的索引 mcgz_index ,执行下列语句:

drop index mcgz_index

因为索引与基表是息息相关的,当表中数据发生变动时,对应的索引项也要随之发生变化。所以删除索引有两种情形:

¨ 主动删除索引,使用 SQL 命令:

drop index < 索引名 >

¨ 被动删除,当使用 drop table 语句来删除表时。例如,要删除表 student ,则关于该表的定义、数据以及索引都统统删除掉。

索引是一种辅助表,对于大量数据建立索引有助于查询速度。索引也是有代价的,除了占用存储空间之外,还要维护索引与基表之间的一致性。过多索引不一定能提高数据库查询性能,所以,要科学设计索引。

你可能感兴趣的:(索引)