ORACLE后面WHERE语句究竟应不影响性能

brehme2007 2009-11-27 11:13:53
前提是where后面的语句均不是主键。网上很多人认为应该把尽肯能缩小查询范围的语句写在后面 理论依据是在CBO的情况下SQL的语句解析顺序是从后到前面的。我做了测试也还是发现结果是没有发生改变,也很疑问,哪位可以更进步的解释下吗:或者给个例子。
...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dave 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 brehme2007 的回复:]
前提是where后面的语句均不是主键。网上很多人认为应该把尽肯能缩小查询范围的语句写在后面 理论依据是在CBO的情况下SQL的语句解析顺序是从后到前面的。我做了测试也还是发现结果是没有发生改变,也很疑问,哪位可以更进步的解释下吗:或者给个例子。
[/Quote]

Oracle是根据statistic数据统计来决定是走RBO(Rule-BasedOptimization),还是走CBO(Cost-BasedOptimization),会去选择哪种执行计划更划算,影响是否走相关的索引等.如果是CBO的话,它依靠准确的(或者说比较准确的)统计信息来产生优化的执行路径,如果没有做过统计,CBO也就没有做cost评估的依据,所以虽然是CBO,但是实际上还是用RBO了,而且如果不常做统计的话,由于CBO是以统计为依据的,所以这时CBO的依据信息有问题,CBO也会不准。 所以 DBA 需要确保定期收集统计信息,创建另一个执行核对清单。
......

Oracle 10g Statistic数据统计











----------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
QQ 群:62697716
huangyunzeng2008 2009-11-27
  • 打赏
  • 举报
回复
根据数据库的优化模式不同,可能会有影响,不过在9i之后这种考虑似乎是多余的。系统会自己制定最好的执行计划,但这个也不是绝对的。
ojuju10 2009-11-27
  • 打赏
  • 举报
回复
where后面的条件的顺序没有关系,数据库会自己选择
yu15tian 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 da21 的回复:]
几乎没关系。执行计划就可知道。印象中存在有关系的那么一丁点情况
[/Quote]

同意
thesecretblue 2009-11-27
  • 打赏
  • 举报
回复
学习
da21 2009-11-27
  • 打赏
  • 举报
回复
几乎没关系。执行计划就可知道。印象中存在有关系的那么一丁点情况
brehme2007 2009-11-27
  • 打赏
  • 举报
回复
那这样看来我就可以理解为关系不大或者没有关系了啊。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧