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认为没有必要走索引。
优化器的优化方式:http://blog.sina.com.cn/s/blog_46a30a740102w4in.html
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的性能问题,我们可以通过建立合 ...
随机推荐
- 洛谷 P2661 信息传递(并查集 & 最小环)
嗯... 题目链接:https://www.luogu.org/problemnew/show/P2661 这道题和一些比较水的并查集不太一样,这道题的思路就是用并查集来求最小环... 首先,如果我们 ...
- Maven下把父项目下的子项目导出到myeclipse中
第一种在父项目下已有子项目:右击空白------import 第二步Maven4MyEclipse-----------Existing Maven Projects 第三部选择父项目下面的子项目 ...
- element input搜索框探索
转(https://blog.csdn.net/qq_37746973/article/details/78402812) 在script中添加下面两个函数 //queryString 为在框中输入的 ...
- Luogu P3223 [HNOI2012]排队 组合
本来做了一道 P4901 排队 后来发现自己做错题了...到也都是数学qwq 这题最恶心的就是两只(雾)老师. 那我们分类讨论: 1.两个老师之间是男生: $ A(n,n)*A(n+1,2)*A(n ...
- F. Relatively Prime Powers (求([2,n],内不是次方的数量)
题目:经过提炼后, 题目的意思就是问[2,n] 内,不是次方数的数量 ,: 思路: 答案就是 原理是利用容斥,注意n开i次根是向下取整(这题巨卡精度) 这是大神的思路 ,, 我还没有理解, 先放着,等 ...
- DateAdapter
import java.text.SimpleDateFormat;import java.util.Date; import javax.xml.bind.annotation.adapters.X ...
- B - Average Gym - 101161B 组合数学
http://codeforces.com/gym/101161/attachments 今天被卡常了,其实是自己对组合数技巧研究的不够. 如果是n, m <= 1e5的,然后取模是质数,那么可 ...
- ASP.NET相关
1.委托:把一个方法当作参数传到另一个方法中 扩展方法:1.静态类 2.静态方法 3.this关键字 using System; using System.Collections.Generic; u ...
- 数据库用户被锁怎么办,报the passord logon
–1.使用管理员用户登陆,查看用户状态: select username,account_status from dba_users; –2.修改用户状态: alter user base accou ...
- JavaSE之Java基础(4)
16.String.StringBuilder和StringBuffer的区别 String类是final的,不可变,StringBuilder和StringBuffer可变: 大部分情况下的执行效率 ...