设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 | 论坛社区
当前位置:首页 >> 数据库 >> Oracle >> 正文
最新信息
·Oracle数据库取消8080端口…
·优化Oracle库表设计的若干…
·ORACLE SQL性能优化系列(…
·ORACLE SQL性能优化系列(…
·ORACLE SQL性能优化系列(…
·ORACLE SQL性能优化系列(…
·大家看看如何用asp操作Ora…
·Oracle 安装的时候java环境…
·windows环境下的oracle服务
·关于oracle的备份策略
资料搜索
热点信息
·Oracle数据导入导出详解
·如何取得一个表的所有字段…
·oracle架构的基础知识
·Oracle数据库的备份及恢复…
·今天通过修改Oracle 数据库…
·Oracle数据库取消8080端口…
·Oracle数据库日常维护
·数据库安全性策略
·Oracle 安装的时候java环境…
·ORACLE SQL性能优化系列(…
推荐信息
·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-2008 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号