WEB开发网
开发学院数据库MSSQL Server SQL Server 索引基础知识(6)----索引的代价,... 阅读

SQL Server 索引基础知识(6)----索引的代价,使用场景

 2008-02-19 09:53:15 来源:WEB开发网   
核心提示:前几天给同事培训了聚集索引,非聚集索引的知识后,SQL Server 索引基础知识(6)----索引的代价,使用场景,在一个同事新作的项目中,竟然出现了滥用聚集索引的问题,何时创建聚集索引?Clustered Index会提高大多数table的性能,尤其是当它满足以下条件时:独特, 狭窄, 静止: 最重要的条件 持续增

前几天给同事培训了聚集索引,非聚集索引的知识后,在一个同事新作的项目中,竟然出现了滥用聚集索引的问题。看来没有培训最最基础的索引的意义,代价,使用场景,是一个非常大的失误。这篇博客就是从这个角度来罗列索引的基础知识。

使用索引的意义

索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。

使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。

使用索引的代价

索引需要占用数据表以外的物理存储空间。

创建索引和维护索引要花费一定的时间。

当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。

创建索引的列

主键

外键或在表联接操作中经常用到的列

在经常查询的字段上最好建立索引

不创建索引的列

很少在查询中被引用

包含较少的惟一值

定义为 text、ntext 或者 image 数据类型的列

Heaps是staging data的很好选择,当它没有任何Index时

Excellent for high performance data loading (parallel bulk load and parallel index creation after load)

Excellent as a partition to a partitioned view or a partitioned table

聚集索引提高性能的方法,在前面几篇博客中分别提到过,下面只是一个简单的大纲,细节请参看前面几篇博客。

何时创建聚集索引?

Clustered Index会提高大多数table的性能,尤其是当它满足以下条件时:

独特, 狭窄, 静止: 最重要的条件

持续增长的,最好是只向上增加。例如:

Identity

Date, identity

GUID (only when using newsequentialid() function)

1 2 3  下一页

Tags:SQL Server 索引

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接