如何建立索引

环境:Sql Server 2008

Technorati Tags: 建立索引

合理的索引设计要建立在对各种查询的分析和预测上。一般来说:

1.  有大量重复值、且经常有范围查询(between,   > , <   ,> =, <   =)和order   by、group   by发生的列,

     可考虑建立群集索引;

2.  经常同时存取多列,且每列都含有重复值可考虑建立组合索引;

3.  组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。

4.  对于查询中很少涉及的列或者重复值比较多的列,不要建立索引。

5.  对于按范围查询的列,最好建立索引。不过,若虽然可能需要按范围来进行查询,但是,若这个范围查询条件利用的不多的情

     况下,最好不好采用索引。

6.  表中若有主键或者外键,一定要为其建立索引,可以加快连接的速度。

7.  索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

8.  不要索引常用的小型表。

9. 通常的情况下不要选择用户可编辑的字段作为键。

10.在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

11.对于那些只有很少数据值的列也不应该增加索引。

12.频繁进行数据操作的表,不要建立太多的索引,当修改性能远远大于检索性能时,不应该创建索引。

13.数据量超过500的表应该有索引。

14.经常与其他表进行连接的表,在连接字段上应该建立索引。

15.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引。

16.索引应该建在选择性高的字段上。

17.复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替。复合索引的几个字段是否经常同时以AND方式出现在

     Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引,否则考虑单字段索引。如果复合索引中

     包含的字段经常单独出现在Where子句中,则分解为多个单字段索引。如果复合索引所包含的字段超过3个,那么仔细

     考虑其必要性,考虑减少复合的字段。构成复合索引的列的总长度不能超过900字节。创建复合索引时,应该仔细考虑列的顺序。

     对索引中的所有列执行搜索或仅对前几列执行搜索时,复合索引非常有用;仅对后面的任意列执行搜索时,复合索引则没有用处。

18.如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引。

19.当需要以多种方式检索数据时,非聚簇索引是非常有用的。

你可能感兴趣的:(数据库,sql,server,tags)