WEB开发网
开发学院数据库Oracle 索引在ORACLE中的应用分析 阅读

索引在ORACLE中的应用分析

 2008-09-08 12:53:16 来源:WEB开发网   
核心提示: 2 select hbs_bh,qc_bh from zl_yhjbqk where qc_bh=’7001’执行路径:SELECT STATEMENT, GOAL = CHOOSE 11 265 3710TABLE ACCESS BY INDEX ROWID DL

2 select hbs_bh,qc_bh from zl_yhjbqk where qc_bh=’7001’

执行路径:

 SELECT STATEMENT, GOAL = CHOOSE 11 265 3710
 TABLE ACCESS BY INDEX ROWID DLYX ZL_YHJBQK 11 265 3710
 INDEX RANGE SCAN DLYX 区册索引 1 265
 平均执行时间(0.078秒)

3 select qc_bh from zl_yhjbqk where qc_bh=’7001’

执行路径:

SELECT STATEMENT, GOAL = CHOOSE 1 265 1060
 INDEX RANGE SCAN DLYX 区册索引 1 265 1060

平均执行时间(0.062秒)

从执行结果可以看出第三条SQL的效率最高。执行路径可以看出第1、2条SQL都多执行了TABLE ACCESS BY INDEX ROWID(通过ROWID访问表) 这个步骤,因为返回的结果列中包括当前使用索引(qc_bh)中未索引的列(hbs_bh,xh_bz),而第3条SQL直接通过QC_BH返回了结果,这就是通过索引直接返回结果的方法。

如何重建索引

alter index 表电量结果表主键 rebuild

如何快速新建大数据量表的索引

如果一个表的记录达到100万以上的话,要对其中一个字段建索引可能要花很长的时间,甚至导致服务器数据库死机,因为在建索引的时候ORACLE要将索引字段所有的内容取出并进行全面排序,数据量大的话可能导致服务器排序内存不足而引用磁盘交换空间进行,这将严重影响服务器数据库的工作。解决方法是增大数据库启动初始化中的排序内存参数,如果要进行大量的索引修改可以设置10M以上的排序内存(ORACLE缺省大小为64K),在索引建立完成后应将参数修改回来,因为在实际OLTP数据库应用中一般不会用到这么大的排序内存。

上一页  1 2 3 4 5 

Tags:索引 ORACLE 应用

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