WEB开发网
开发学院数据库MSSQL Server 关于SQL Server中索引使用及维护简介 阅读

关于SQL Server中索引使用及维护简介

 2007-05-15 09:26:50 来源:WEB开发网   
核心提示: 1、某列常用于集合函数(如Sum,....),2、某列常用于join,order by,group by,关于SQL Server中索引使用及维护简介(3),3、查寻出的数据不超过表中数据量的20%,三、覆盖索引(covering indexes)的使用覆盖索引是指那些索引项中包含查寻所需

1、某列常用于集合函数(如Sum,....)。

2、某列常用于join,order by,group by。

3、查寻出的数据不超过表中数据量的20%。

三、覆盖索引(covering indexes)的使用

覆盖索引是指那些索引项中包含查寻所需要的全部信息的非聚簇索引,这种索引之所以比较快也正是因为索引页中包含了查寻所必须的数据,不需去访问数据页。如果非聚簇索引中包含结果数据,那么它的查询速度将快于聚簇索引。

但是由于覆盖索引的索引项比较多,要占用比较大的空间。而且update操作会引起索引值改变。所以如果潜在的覆盖查询并不常用或不太关键,则覆盖索引的增加反而会降低性能。

四、索引的选择技术

p_detail是住房公积金管理系统中记录个人明细的表,有890000行,观察在不同索引下的查询运行效果,测试在C/S环境下进行,客户机是IBM PII350(内存64M),服务器是DEC Alpha1000A(内存128M),数据库为SYBASE11.0.3。

1、select count(*) from p_detail where
op_date>’19990101’ and op_date<’
19991231’ and pri_surplus1>300
2、select count(*),sum(pri_surplus1) from p_detail
where op_date>’19990101’ and
pay_month between‘199908’ and’199912’
不建任何索引查询1 1分15秒
查询2 1分7秒
在op_date上建非聚簇索引查询1 57秒
查询2 57秒
在op_date上建聚簇索引查询1 <1秒
查询2 52秒
在pay_month、op_date、pri_surplus1上建索引查询1 34秒
查询2 <1秒
在op_date、pay_month、pri_surplus1上建索引查询1 <1秒
查询2 <1秒

从以上查询效果分析,索引的有无,建立方式的不同将会导致不同的查询效果,选择什么样的索引基于用户对数据的查询条件,这些条件体现于where从句和join表达式中。一般来说建立索引的思路是:

上一页  1 2 3 4  下一页

Tags:关于 SQL Server

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