设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> 数据库 >> Oracle >> 正文
最新信息
·win 2003企业版+oracle+as…
·Oracle数据库取消8080端口…
·优化Oracle库表设计的若干…
·ORACLE SQL性能优化系列(…
·ORACLE SQL性能优化系列(…
·ORACLE SQL性能优化系列(…
·ORACLE SQL性能优化系列(…
·大家看看如何用asp操作Ora…
·Oracle 安装的时候java环境…
·windows环境下的oracle服务
资料搜索
热点信息
·win 2003企业版+oracle+as…
·Oracle 安装的时候java环境…
·Oracle数据导入导出详解
·Oracle数据库日常维护
·如何取得一个表的所有字段…
·oracle架构的基础知识
·优化Oracle库表设计的若干…
·Oracle数据库取消8080端口…
·今天通过修改Oracle 数据库…
·Oracle数据库的备份及恢复…
推荐信息
·windows环境下的oracle服务
·Oracle数据导入导出详解
·Oracle数据库的备份与恢
·oracle架构的基础知识
·Oracle数据库的备份及恢复…


Google
 
ORACLE SQL性能优化系列(四)
〖编辑:Cloudy | 浏览:人次〗

5.WHERE子句中的连接顺序.

ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.

例如:

(低效,执行时间156.3秒)

SELECT …

FROM EMP E

WHERE  SAL > 50000

AND    JOB = ‘MANAGER’

AND    25 < (SELECT COUNT(*) FROM EMP

             WHERE MGR=E.EMPNO);

(高效,执行时间10.6秒)

SELECT …

FROM EMP E

WHERE 25 < (SELECT COUNT(*) FROM EMP

             WHERE MGR=E.EMPNO)

AND    SAL > 50000

AND    JOB = ‘MANAGER’;


6.     SELECT子句中避免使用 ‘ * ‘

当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.


录入时间:2007-03-30 11:02:41 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号