SQL性能的度量 - CBO优化方式

一条查询语句的处理包括语法分析、语句优化和查询执行三个阶段。在语句优化阶段,Oracle默认使用基于成本的优化器(CBOcost based optimizer)来选择最好的执行计划,这个最好的标准就是消耗的系统资源如CPU以及I/O资源最少。


基于CBO的优化器有三种优化方式来满足不同的查询需求,即all_rowsfirst_rows_nfirst_rows

all_rowsOracle的默认方式,优化目标是实现查询的最大吞吐量。

first_rows_n:优化输出查询的前n行数据,满足快速响应的查询需求。

first_rowsfirst_rows方式的老版本,尽快输出查询的前几行数据。


Oracle提供在不同级别上的优化,即实例级、会话级和语句级。查询当前数据库的CBO优化方式

show parameter optimizer_mode;


NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

optimizer_mode                       string      ALL_ROWS


在实例级设置CBO优化方式

alter system set optimizer_mode = first_rows_10;


在会话级设置CBO优化方式

alter session set optimizer_mode = all_rows;


在语句级设置CBO优化方式,需要使用hint提示

select /*+first_rows_10*/ ename, sal, mgr from scott.emp;


优化器的工作过程包括根据统计数据进行SQL转换、根据资源消耗情况选择访问路径、根据统计数据选择连接方法以及确定连接次序几个步骤,最后选择一个最好的执行计划。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28974745/viewspace-2150142/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28974745/viewspace-2150142/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值