SQL Server 索引

来源:互联网 发布:安禄山为什么叛乱 知乎 编辑:程序博客网 时间:2024/06/07 08:00

SQL Server 索引的作用:

1.索引是以表列为基础的数据库对象,它保存着表中排序的索引列。

 

2.其主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。

 

3.创建索引与维护索引都会浪费时间,对表中的数据进行增加,删除和修改操作时,索引就要进行维护,否则索引的作用就会下降;另外索引也会占用一定的物理空间,如果占用的物理空间过多,就会影响到整个数据库SQL Server系统的性能。

 

4.建立索引的原则:

 

(1)定义主键的数据列一定要建立索引。

 

(2)定义有外键的数据列一定要建立索引。

 

(3)对于经常查询的数据列最好建立索引。

 

A、对于需要在指定范围内的快速或频繁查询的数据列;

B、经常用在WHERE子句中的数据列。

 

(4)对于那些查询中很少涉及的列,重复值比较多的列不要建立索引。

 

(5)对于定义为textimagebit的数据类型的列不要建立索引。

 

5.索引的分类:

 

(1)聚集索引:聚集索引会对表和视图进行物理排序。

(2)非聚集索引:不对表和视图进行物理排序,最多可建立250个非聚集索引,或者249个非聚集索引与1个聚集索引。

(3)唯一索引:唯一索引不允许两行具有相同的索引值。

 

6.创建索引的语法:

CREATE [UNIQUE][CLUSTERED | NONCLUSTERED]

INDEX index_name

ON {table_name | view_name}

[WITH [index_property [,....n]]

说明:

UNIQUE: 建立唯一索引。

CLUSTERED: 建立聚集索引。

NONCLUSTERED: 建立非聚集索引。

Index_property: 索引属性。

UNIQUE索引既可以采用聚集索引结构,也可以采用非聚集索引的结构,如果不指明采用的索引结构,则SQL Server系统默认为采用非聚集索引结构。

 

7.删除索引语法:

DROP INDEX table_name.index_name[,table_name.index_name]

说明:table_name: 索引所在的表名称。

index_name : 要删除的索引名称。

 

8.显示索引信息:

 

使用系统存储过程:sp_helpindex 查看指定表的索引信息。

 

执行代码如下:

Exec sp_helpindex book1;

 

9.重命名索引

语法:

Exce sp_rename table_name.old_index_name, new_index_name

 

10.显示查询计划的命令为:

SET SHOWPALN_ALL ON | OFF SET SHOWPLAN_TEXT ON | OFF

说明:帮助用户分析有哪些索引被系统采用。

 

例子:

USE book

GO

SET SHOWPLAN_ALL ON

GO

SELECT * FROM book1 WHERE 编号='YBZT2406'

GO

SET SHOWPLAN_ALL OFF

GO

说明:在Set showplan命令与select 命令之间一定要有 go语句。

 

11.设置是否显示磁盘IO统计的命令为:

SET STATISTICS IO ON | OFF

 

12.索引的维护

更新索引的语法:

UPDATE STATISTICS table_name index_name

 

使用DBCC SHOWCONTIG 语句扫描表语法:

DBCC SHOWCONTIG (table_name, index_name)

 

使用DBCC INDEXDEFRAG语句进行碎片整理语法:

DBCC SHOWDEFRAG(database_name,table_name,index_name)

原创粉丝点击