SQL 创建索引的作用

 

一、使用索引的优点:

  1、通过唯一性索引(unique)可确保数据的唯一性

  2、加快数据的检索速度

  3、加快表之间的连接

  4、减少分组和排序时间

  5、使用优化隐藏器提高系统性能

 

二、使用索引的原则:

  1、在需要经常搜索的列上创建索引

  2、主键上创建索引

  3、经常用于连接的列上创建索引

  4、经常需要根据范围进行搜索的列上创建索引

  5、经常需要排序的列上创建索引

  6、经常用于where子句的列上创建索引

 

三、不创建索引的原则:

  1、查询很少使用和参考的列不建索引

  2、对只有少数值的列不建索引

  3、定义为text、image、bit的列不建索引

  4、当需要update性能远远高于select性能时不应建索引

 

四、常用的命令:

  1、sp_helpindex :报告表或视图上的索引信息

  2、dbcc showcontig :显示指定表的数据和索引的碎片信息

  3、dbcc dbreindex :重建指定数据库中一个或多个索引

  4、dbcc indexdefrag :整理指定表或视图的聚集索引或辅助索引的碎片

 

五、优化索引:

  1、重建索引(dbcc dbreindex)

  2、索引优化向导

  3、整理指定的表或视图的聚集索引和辅助索引碎片(dbcc indexefrag)

 

如何创建索引

 

CREATE INDEX 语句用于在表中创建索引。

 

在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。

索引

 

您可以在表中创建索引,以便更加快速高效地查询数据。

 

用户无法看到索引,它们只能被用来加速搜索/查询。

 

注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

 

 

SQL CREATE INDEX 语法

 

在表上创建一个简单的索引。允许使用重复的值:

 

CREATE INDEX index_name ON table_name (column_name)

注释:"column_name" 规定需要索引的列。

 

 

SQL CREATE UNIQUE INDEX 语法

 

在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。

 

CREATE UNIQUE INDEX index_name ON table_name (column_name)

 

CREATE INDEX 实例

 

本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 列:

 

CREATE INDEX PersonIndex ON Person (LastName)

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:

 

CREATE INDEX PersonIndex ON Person (LastName DESC)

假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

 

CREATE INDEX PersonIndex ON