优化oracle的方式,Oracle 优化方式

Oracle的优化器有两种优化方式,即基于规则的优化方式(rule-based optimization 简称RBO)和基于代价的优化方式(cost-based optimization 简称CBO),在oralce 8以及以后的版本,Oracle强烈推荐CBO的方式。

▶ RBO方式:oralce在分析语句时所遵循的是oralce内部预定的一些规则,比如我们常见的,where子句中有索引时去走索引。

▶ CBO方式:它是看语句的代价,这里的代价主要是CPU和内存。优化器在判断是否使用这种方式时,主要参照的是表和索引的统计信息。统计信息给出表的大小、有多少行、每行的长度等信息。这些信息起初在库内是没有的,要做analyze才出现的,很多时候过期的统计信息会另优化器做出错误的执行计划,因此需要及时更新统计信息。

注意:走索引不一定是最优的,比如一张表只有两行数据,一次I/O就可以完成表的检索,而此时走索引则需要两次I/O,这时全表扫描(full scan)最好。

优化模式包括rule、choose、first row、all row这四种方式:

▶ Rule:基于规则的方式。

▶ Choose:默认情况下Oracle走的便是这种模式,指的是一个表或者索引有统计信息,则走CBO的方式,如果表或者索引没有统计信息,表又不是特别小,而且相应的列有索引时,那么走索引,也就是RBO方式。

▶ First rows:它与choose方式是类似的,所不同的是当一个表有统计信息时,他将以最快的方式返回查询的最先几行,从总体上减少响应的时间。

▶ All rows:也就是我们所说的cost的方式,当一个表有统计信息时,它将以最快的方式返回表的所有行,从总体上提高查询的吞吐量,没有统计则走RBO的方式。

设定选择哪种优化模式

① Instance级别

可以通过在init.ora文件中设定OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS设定级别,如果没设定 OPTIMIZER_MODE参数则默认用的是Choose。

使用spfile的情况,使用下面的语句:

alter system set optimizer_mode=choose scope=spfile;

② Sessions级别

通过 ALTER SESSION SET OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS;来设定。

③ 语句级别

用Hint来指定。

当一个表的某个字段有索引,但是执行计划却没有走索引,有以下几个原因:

① 优化模式是all rows方式;

② 表做过analyze,有统计信息;

③ 表很小,Oracle认为没有必要走索引。

ORACLE优化器RBO与CBO介绍总结

RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer).它是SQL分析和执行的优化工具,它负责生成.制定SQL的执行计划.Oracle的优化器有两种,基 ...

oracle优化

sql语句 优化方式: 1select 语句中避免用"*" oracle在解析时,会将“*”依次转换成所有的列名(数据字典完成)耗时 2尽量多用commit语句 及时提交,释放资源 ...

Oracle优化总结

本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案.关键词 ORACLE数据库 环境调整 ...

Oracle优化的几个简单步骤

数据库优化的讨论可以说是一个永恒的主题.资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等.还有的人认为要抓出执行最慢的语句来进行优化.但实际情况 ...

oracle优化原则(二)

SQL优化原则 二.SQL语句编写注意问题 www.2cto.com 下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍.在这些where子句中,即使某些列存在索引,但是由于编写了劣质 ...

SDE+ORACLE优化配置

原文 SDE+ORACLE优化配置 SDE的性能取决于: 首先操作系统的性能:其次是Oracle的性能,再次是SDE的性能. 第一:操作系统,无非是内存.CPU.带宽等. 可以有待提高的地方:第一.硬 ...

Oracle优化器介绍

Oracle优化器介绍 本文讲述了Oracle优化器的概念.工作原理和使用方法,兼顾了Oracle8i.9i以及最新的10g三个版本.理解本文将有助于您更好的更有效的进行SQL优化工作. RBO优化器 ...

ORACLE 优化

本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了 ORACLE数据库的优化调整方案. 关键词 ORACLE数据库 环境 ...

oracle 优化方法总结

分析和优化的基本步骤如下: 1.如果是SQL语句的写法问题,我们可以通过在不更改业务逻辑的情况下改写SQL来加以解决: 2.如果是不必要的全表扫描/排序而导致了目标SQL的性能问题,我们可以通过建立合 ...

随机推荐

js自适应屏幕高度

//自适应屏幕高度 $(window).resize(function() { hightChange(); }); function hightChange(){ ; $();// iframe i ...

delphi Inc函数和Dec函数的用法

inc自增函数 .inc(i,n)://i,n:integer;n为自增量 相当于i:=i+n: .inc(i)://i:integer; 相当于i:=i+;   dec自减函数 .dec(i,n): ...

[你必须知道的.NET]第三十二回,,深入.NET 4.0之,Tuple一二

发布日期:2009.06.01 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. Tuple,是函数式编程的概念之一,早见于Elang.F#等动态 ...

spring @resource @ Autowired

Spring中什么时候用@Resource,什么时候用@service 当你需要定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于讲这个类 ...

PHP 单一入口

单一入口概述 单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口. 打个比方,大家都要上W ...

IOS-Plist文件存储(1)

1.什么是一个文件系统? IOS每个应用程序都有自己的文件系统.并且有一个相应的接入,一般分 ~/Documents/ ~/tmp/ ~/Library/Caches/ ~/Library/Prefe ...

使用Material Design Tint和视图详解

视图 首先来讲Material Design 视图的概念,在新的api中,新添加了z轴的概念,z轴垂直于屏幕,用来表现元素的层叠关系,z值(海拔高度)越高,元素离界面底层(水平面)越远,投影越重,这里 ...

spark MLlib BasicStatistics 统计学基础

一, jar依赖,jsc创建. package ML.BasicStatistics; import com.google.common.collect.Lists; import org.apach ...

Golang 之协程详解

转自:https://www.cnblogs.com/liang1101/p/7285955.html 一.Golang 线程和协程的区别 备注:需要区分进程.线程(内核级线程).协程(用户级线程)三 ...

活代码LINQ——08

一.模块代码 ' Fig. 9.6: ListCollection.vb ' Generic List collection demonstration. Module ListCollection ...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值