创建索引 :

 

SQL Server 2000创建索引的方法

1)利用企业管理器中的索引向导创建索引。

2)利用企业管理器直接创建索引。

3)利用Transact-SQL语句中的CREATE INDEX命令创建索引。

4)利用企业管理器中的索引优化向导创建索引。

 

利用Transact-SQL语句中的CREATE INDEX命令创建索引:

 

其语法形式如下:

CREATE [UNIQUE] [CLUSTERED| NONCLUSTERED ]

INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )

[with

[PAD_INDEX]

[[,]FILLFACTOR=fillfactor][[,]IGNORE_DUP_KEY]

[[,]DROP_EXISTING]

     [[,]STATISTICS_NORECOMPUTE]

[[,]SORT_IN_TEMPDB]

]

[ ON filegroup ]

 

UNIQUE:用于指定为表或视图创建唯一索引,即不允许存在索引值相同的两行。

CLUSTERED:用于指定创建的索引为聚集索引。

NONCLUSTERED:用于指定创建的索引为非聚集索引。

index_name:用于指定所创建的索引的名称。

table:用于指定创建索引的表的名称。

view:用于指定创建索引的视图的名称。

ASC|DESC:用于指定具体某个索引列的升序或降序排序方向。

Column:用于指定被索引的列。

PAD_INDEX:用于指定索引中间级中每个页(节点)上保持开放的空间。

 

FILLFACTOR = fillfactor:用于指定在创建索引时,每个索引页的数据占索引页大小的百分比,

 

fillfactor的值为1100

IGNORE_DUP_KEY:用于控制当往包含于一个唯一聚集索引中的列中插入重复数据时SQL Server所作的反应

 

DROP_EXISTING:用于指定应删除并重新创建已命名的先前存在的聚集索引或者非聚集索引。

STATISTICS_NORECOMPUTE:用于指定过期的索引统计不会自动重新计算。

SORT_IN_TEMPDB:用于指定创建索引时的中间排序结果将存储在 tempdb 数据库中。

ON filegroup:用于指定存放索引的文件组。

 

例子5-21:为表employees创建了一个唯一聚集索引,其程序清单如下:

CREATE UNIQUE CLUSTERED INDEX number_ind

   ON employees (number)

with

   pad_index,

   fillfactor=20,

   ignore_dup_key,

   drop_existing,

   statistics_norecompute

 

为表employees创建了一个复合索引,其程序清单如下:

create index employees_cpl_ind

on employees(name,age)

with

   pad_index,

   fillfactor=50

 

 

利用索引优化向导创建索引:

 

索引优化向导可以完成以下几方面的工作:

1 根据给定的工作负荷,通过使用查询优化器分析该工作负荷中的查询,为数据库推荐最佳索引组

 

合。

2)分析所建议的更改将会产生的影响,包括索引的使用,查询在表之间的分布,以及查询在工作负荷

 

中的性能。

3)推荐为执行一个小型的问题查询集而对数据库进行优化的方法。

4)通过设定高级选项如磁盘空间约束、最大查询语句数和每个索引最多对应字段数等,允许定制推荐

 

方式。

 

 

用系统存储过程查看和更改索引名称

 

系统存储过程sp_helpindex可以返回表的所有索引信息,其语法形式如下:

sp_helpindex [@objname=]’name’

其中[@objname=]name’参数用于指定当前数据库中的表的名称。

另外,系统存储过程sp_rename可以用来更改索引的名称,其语法形式如下:

sp_rename[@objname=]'object_name',

[@newname=]'new_name'

    [ , [ @objtype = ] 'object_type' ]

 

更改employees表中的索引employees_name_index名称为employees_name_ind,其程序清单如下:

Exec sp_rename ‘employees.[employees_name_index]’, ‘employees_name_ind’, ‘index’

 

 

使用Transact-SQL语句中的DROP INDEX命令删除索引

 

当不再需要某个索引时,可以将其删除,DROP INDEX命令可以删除一个或者多个当前数据库中的索引,其

 

语法形式如下:

DROP INDEX 'table.index | view.index' [ ,...n ]

其中,table | view用于指定索引列所在的表或索引视图;index用于指定要删除的索引名称。注意,

 

DROP INDEX命令不能删除由CREATE TABLE或者ALTER TABLE命令创建的主键或者唯一性约束索引,也不能

 

删除系统表中的索引。

 

使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程:
posted on 2007-04-11 15:46  .NET初学者俱乐部  阅读(271)  评论(0)    收藏  举报


 
Asp.net 初学者零起点从入门到精通