1、Oracle优化器的优化方式

Oracle优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO)。

A、RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。

B、CBO方式:依词义可知,它是看语句的代价(Cost)了,这里的代价主要指Cpu和内存。

优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是你在做analyze后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些我们应及时更新这些信息。

在Oracle8及以后的版本,Oracle列推荐用CBO的方式。

我们要明了,不一定走索引就是优的 ,比如一个表只有两行数据,一次IO就可以完成全表的检索,而此时走索引时则需要两次IO,这时对这个表做全表扫描(full table scan)是最好的。

2、Oracle优化器的优化模式(Optermizer Mode)

优化模式包括Rule,Choose,First rows,All rows这四种方式,也就是我们以上所提及的。如下我解释一下:

Rule:不用多说,即走基于规则的方式。

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

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

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

3、如何设定选用哪种优化模式

◆A、Instance级别

我们可以通过在init。

ora文件中设定OPTIMIZER_MODE=RULE、OPTIMIZER_MODE=CHOOSE、 OPTIMIZER_MODE=FIRST_ROWS、OPTIMIZER_MODE=ALL_ROWS去选用3所提的四种方式,如果你没设定 OPTIMIZER_MODE参数则默认用的是Choose这种方式。

◆B、Sessions级别

通过SQL> ALTER SESSION SET OPTIMIZER_MODE=;来设定。

全部

oracle的优化器有哪些,Oracle优化器有哪些优化方式?相关推荐

  1. day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法

    在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...

  2. Oracle 学习之建表、索引、同义词以及SQL优化

    Oracle 学习之建表.索引.同义词以及SQL优化: 一.Oracle 建表: 1.建表语句: --创建表 create table test ( id varchar2(200) primary ...

  3. oracle层级计算推演,(特价书)Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,盖国强作序力荐)(china-pub首发)...

    第一篇 执 行 计 划 执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让 ...

  4. oracle性能优化求生...,Oracle,SQL性能优化之探究|《oracle性能优化求生指南》

    摘 要 在数据库应用中,根据用户提交的查询请求,如何才能精炼又高效地得到查询结果?从多个角度描述怎样优化SQL语句.实验结果表明,SQL优化能够减轻系统资源的占用,满足用户的要求. 关键词 SQL优化 ...

  5. oracle sql 全是子查询查询速度太慢如何优化_如果面试官问你如何优化mysql分页查询,请把这篇文章甩给他!...

    在我们日常开发中,分页查询是必不可少的,可以说每干后端程序猿大部分时间都是CURD,所以分页的查询也接触的不少,你们都是怎么实现的呢?前不久的一段时间,我的一个同事突然找我寻求帮助,他说他写的sql查 ...

  6. oracle等待资源时间加长,案例:Oracle等待事件latch: cache buffers chains故障优化处理总结...

    天萃荷净 数据库的CPU使用率为100%,应用相应迟缓.查看AWR中数据库的latch:cache buffers chains等待较多 当一个数据块读入sga区,相应的buffer header会被 ...

  7. 3dmax:3dmax的软件右边栏常用修改器(面挤出、网格/平滑、涡轮平滑、球形化、曲面修改器、星、融化、删除网格修改器、体积选择、优化、UVW贴图修改器、弯曲、置换、噪波、锥化)之详细攻略

    3dmax:3dmax的软件右边栏常用修改器(面挤出.网格/平滑.涡轮平滑.球形化.曲面修改器.星.融化.删除网格修改器.体积选择.优化.UVW贴图修改器.弯曲.置换.噪波.锥化)之详细攻略 目录

  8. 谷歌新技术:神经优化器搜索,自动找到可解释的优化方法

    文章来源:ATYUN AI平台 如今,深度学习模型已经部署在众多谷歌产品中,如搜索.翻译和照片等.而在训练深度学习模型时,优化方法的选择至关重要.例如,随机梯度下降在大多情况下都很有效,但更先进的优化 ...

  9. 优化工具包—无约束非线性优化求解器(fminsearch)

    优化工具包-无约束非线性优化求解器(fminsearch) 原创不易,路过的各位大佬请点个赞 室内定位/导航/优化技术探讨:WX: ZB823618313 目录 优化工具包-无约束非线性优化求解器(f ...

  10. oracle 字符集 自造字,循序渐进Oracle:自定义字符集的使用、更改字符集的内部方式及字符集更改的案例...

    第3章  Oracle的字符集(3.9-3.11) Oracle全球支持(即Globalization Support)允许我们使用本地语言和格式来存储和检索数据.通过全球支持,Oracle可以支持多 ...

最新文章

  1. 如何教计算机认识手写数字(上)
  2. 以Attribute加上Header验证
  3. 关于requestAnimationFrame与setInterval的一点差异
  4. win10下mysql 8.0.18 安装配置方法图文教程
  5. 编写函数实现员工信息录入和输出_编写我的第一个Linux 内核模块“hello_module”...
  6. 一个合格的ACMer的代码当中,都藏着哪些秘密?
  7. Struts2.3使用Sitemesh如何配置web.xml?
  8. 写一个微信和支付宝订单的查询方法:
  9. 一起来全面解析5G网络领域最关键的十大技术
  10. 机器翻译 | 反向翻译 (back-translation) 笔记
  11. VMware安装CentOS7以及CentOS官网下载自选镜像
  12. 【合规性检查方法-Fitness 2】基于Alignment的拟合度评估方法
  13. 再更新:2022 京东/淘宝双11活动一键自动完成任务脚本app来了,顺便说个事情...
  14. 大数据权限管理-Security和hue案例操作(3)
  15. [史上最全]笔记本更换内存条和固态硬盘重装系统教程
  16. IAR更改更改字体的办法,完美解决!
  17. 第4章 Stata参数检验
  18. 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)
  19. AE基础教程(7)——第7章 区域显示,透明网格
  20. Python调用百度AI,实现音频转换文字(标准版)

热门文章

  1. android设置字体大小,Android中如何设置字体大小
  2. TCP可靠传输实现-滑动窗口协议
  3. linux关闭防火墙时出现问号乱码,linux文件名乱码问题的解决方...-tcp_wrappers防火墙配置方法-su 与 su - 的比较_169IT.COM...
  4. IE插件加载题目调试
  5. 记录自己装AMD黑苹果安装
  6. 修改element-ui 下拉框样式
  7. 二重积分matlab算法,基于MATLAB的二重积分计算方法
  8. 微信公众号文章排版编辑器推荐
  9. 疫情防控中小学开学错峰错时返校放学方案
  10. NC65新增按钮、新增按钮拦截器,某个字段制作超链接