WEB开发网
开发学院数据库MSSQL Server SQL Server索引的使用和优化 阅读

SQL Server索引的使用和优化

 2006-08-05 09:14:46 来源: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秒

上一页  1 2 3 4 5  下一页

Tags:SQL Server 索引

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