PCclub社区:用户 密码 注册 www.pconline.cn 汽车网 游戏网 女性网
太平洋电脑网
太平洋社区 产品论坛 软件论坛
咖 啡 馆 游戏论坛
首  页
产品库
今日报价 产业资讯
评 测 室 数码世界
软件 下载 摄影  
游戏 二手 视频 通  信 
商城
图库
渠道商情 方案应用 招聘培训
网络设备 服 务 器 办公设备
CPU/内存显示器主板显卡
游戏硬件打印机存储外设
diy
DIY硬件
手机
手 机
笔记本
笔记本
台式机
台式机
数码相机
数码相机
随身听
MP3/MP4
摄像机
摄像机
数字家庭
数字家庭
精品廊
精品廊
北京 上海 广州 深圳 香港 广西 重庆 山东 江苏 辽宁 福建 成都 西安 台湾
   
   
首页 | 资讯 | 网络 | 系统 | 开发 | 其它 | 课程 | 考题下载 | 职场 | 找工作 | 找人才 | 服务指南
 
  认证专区: | Cisco | Microsoft | Sun | Oracle | IT设计 | 软件水平考试 |
 
您现在的位置: 招聘与培训 > 其它认证栏目 > 数据库栏目 > ORACLE 免费新闻代码RSS新闻聚合
 

在Oracle里加快SQL执行的三种方法

作者:佚名 责任编辑:lujiezhen

 

  Oracle提供了多种方法用于减少花在剖析Oracle SQL表达式上的时间,在执行带有大量执行计划的复杂查询时剖析过程会拖累系统的性能。现在我们来简要地看看这些方法中的几种。

  使用ordered提示

  Oracle必须花费大量的时间来剖析多表格的合并,用以确定表格合并的最佳顺序。如果SQL表达式涉及七个乃至更多的表格合并,那么有时就会需要超过30分钟的时间来剖析,因为Oracle必须评估表格合并所有可能的顺序。八个表格就会有40,000多种顺序。Ordered这个提示(hint)和其他的提示一起使用能够产生合适的合并顺序。

  Ordered这个提示会要求列在SQL表达式FROM字句里的表格按照指定的顺序进行合并,FROM字句里的第一个表格会指定驱动表格(driving table)。驱动表格应该是返回最小行数的表格。使用ordered提示会跳过非常耗时和耗资源的剖析操作,并加快Oracle SQL的执行。

  Listing A如下:

  Listing A
  select /*+ ordered use_nl(bonus)
parallel(e, 4) */ e.ename, hiredate, b.comm from emp e, bonus b
where e.ename = b.ename ;


  Listing A里是一个复杂查询的例子,这个查询被强制进行一个嵌套循环,从而与对emp表格进行的并行查询合并。要注意,我已经使用ordered提示来引导Oracle去按照WHERE子句所列出的顺序来评估表格。

  使用theordered_predicates

  ordered_predicates提示在查询的WHERE子句里指定的,并被用来指定布尔判断(Boolean predicate)被评估的顺序。在没有ordered_predicates的情况下,Oracle会使用下面这些步骤来评估SQL判断的顺序:

  子查询的评估先于外层WHERE子句里的Boolean条件。

  所有没有内置函数或者子查询的布尔条件都按照其在WHERE子句里相反的顺序进行评估,即最后一条判断最先被评估。

  每个判断都带有内置函数的布尔判断都依据其预计的评估值按递增排列。

  你可以使用ordered_predicates提示来强制取代这些缺省的评估规则,那么你WHERE子句里的项目就会按照其在查询里出现的顺序被评估。在查询的WHERE子句里使用了PL/SQL函数的情况下,通常会使用ordered_predicates提示。如果你知道限制最多的判断并且希望Oracle最先评估这些判断的时候,在这种情况下,它也是非常有用的。用法提示:你不能使用ordered_predicates提示来保存对索引键进行判断评估的顺序。

  限制表格合并评估的数量

  提高SQL剖析性能的最后一种方法是强制取代Oracle的一个参数,这个参数控制着在评估一个查询的时候,基于消耗的优化器所评估的可能合并数量。

  optimizer_search_limit这个参数会指定表格合并组合的最大数量,后者将会在Oracle试图确定合并多表格最佳方式的时候被评估。这个参数有助于防止优化器花更多的时间来评估可能的合并顺序,而不是把时间花在寻找最佳合并顺序上。optimizer_search_limit还控制着用于调用star join提示的阙值,当查询里的表格数量低于optimizer_search_limit(其缺省的值是5)的时候,star提示就会被光顾。

  以上只是一些Oracle DBA用来优化Oracle数据库应用程序SQL查询的性能的一些小技巧。



更多相关搜索: SQL    Oracle   

相关文章  
·SQLServer基本函数详细介绍 [2007-01-23]
·2006年全球获得Oracle认证人数最新统计 [2007-01-12]
·一个容易忽视的Oracle数据安全问题 [2006-12-05]
·SQL Server实用经验与技巧大汇集 [2006-11-13]
·入侵Oracle数据库时常用的操作命令 [2006-10-24]
·Oracle Index 的三个问题 [2006-09-25]
·在Oracle中实现搜索分页查询 [2006-09-14]
·Oracle 常见错误代码的分析与解决 [2006-09-08]

  发给好友 我要报错 投稿给我们 加入收藏 返回顶部  
 
关于我们 | 网站地图 | 广告服务 | 联系我们 | 招聘精英 | 网站律师 | 合作联系


广东省通信管理局
ICP证粤B2-20040647
互联网清理整顿
技术支持与报障:support@pconline.com.cn
        020-87568837         
对本站有任何建议、意见或投诉,请点这里在线提交.
本网站简体、繁体两种版本,以简体版为准
PConline版权所有,未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任