WEB开发网
开发学院数据库MSSQL Server 利用索引提高SQL Server数据处理的效率 阅读

利用索引提高SQL Server数据处理的效率

 2008-09-02 10:00:11 来源: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秒

上一页  1 2 3 4 5  下一页

Tags:利用 索引 提高

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