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

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

基于CBO的优化器有三种优化方式来满足不同的查询需求,即all_rows、first_rows_n、first_rows。

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

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

first_rows:first_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转换、根据资源消耗情况选择访问路径、根据统计数据选择连接方法以及确定连接次序几个步骤,最后选择一个最好的执行计划。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值