首页 > 其他分享 >3.优化器模式的选择

3.优化器模式的选择

时间:2023-04-01 17:25:02浏览次数:34  
标签:12 CBO 模式 149 选择 ROWS rowid SQL 优化

1优化器的模式

1.1.RULE模式

   Oracle将使用RBO来解析目标SQL,统计信息将失去作用

1.2.CHOOSE模式

    Oracle 9i中OPTIMIZER_MODE的默认值,表示Oracle在解析目标SQL到底使用RBO还是CBO,如果该SQL涉及的表存在统计信息,Oracle解析SQL就会使用CBO,如果所有表对象没有统计信息,用RBO

1.3.FIRST_ROWS_n(n=1,10,100,1000)模式

    当OPTIMIZER_MODE的值为FIRST_ROWS_n(n=1,10,100,1000)时,Oracle会把那些能够以最快的响应速度返回头n(n=1,10,100,1000)条记录所对应的执行步骤的成本值修改为一个很小的值(远远小于默

认情况下CBO对同样执行步骤所计算出的成本值)。这样Oracle就既没有违背CBO选取执行计划的总原则(成本值最小),同时又兼顾了FIRST_ROWS_n(n=1,10,100,1000)含义。

1.4.FIRST_ROWS

     它表示Oracle在解析目标SQL时会联合使用CBO和RBO。此时CBO在计算该SQL的各条件执行路径的成本值时的侧重点在于以最快的响应速度返回头几条记录,当特殊情况是,FIRST_ROWS会使用RBO规则

选取执行计划,不再考虑成本,

1.5.ALL_ROWS

    是Oracle10g以后后续数据库版本中OPTIMITZER_MODE默认值,他表示Oracle会使用CBO来解析目标SQL,此时CBO在计算该SQL的各条件执行路径的成本值时的侧重点在吞吐量。

总结:ALL_ROWS侧重点是最佳的吞吐量,FIRST_ROWS_n(n=1,10,100,1000)侧重点是最快的响应速度返回头n(n=1,10,100,1000)条记录。

2.结果集

指包含指定执行结果的集合,结果集和目标SQL的执行计划的执行步骤对应,一个执行步骤所产生的之心结果就是该执行步骤所对应输出的结果集

3.访问数据的方法

3.1.访问表的方法

3.1.1全表扫描:扫描表所在的block块。

3.1.2rowid扫描:通过扫描物理地址扫描数据

scott@ORCLPDB01 2023-04-01 17:08:18> select empno,ename,rowid,dbms_rowid.rowid_relative_fno(rowid) || '_' || dbms_rowid.rowid_block_number(rowid) || '_' || dbms_rowid.rowid_row_number(rowid) location from emp;

     EMPNO ENAME      ROWID		 LOCATION
---------- ---------- ------------------ --------------------------------------------------------------------------------------------------------------------------
      7369 SMITH      AAASRwAAMAAAACVAAA 12_149_0
      7499 ALLEN      AAASRwAAMAAAACVAAB 12_149_1
      7521 WARD       AAASRwAAMAAAACVAAC 12_149_2
      7566 JONES      AAASRwAAMAAAACVAAD 12_149_3
      7654 MARTIN     AAASRwAAMAAAACVAAE 12_149_4
      7698 BLAKE      AAASRwAAMAAAACVAAF 12_149_5
      7782 CLARK      AAASRwAAMAAAACVAAG 12_149_6
      7788 SCOTT      AAASRwAAMAAAACVAAH 12_149_7
      7839 KING       AAASRwAAMAAAACVAAI 12_149_8
      7844 TURNER     AAASRwAAMAAAACVAAJ 12_149_9
      7876 ADAMS      AAASRwAAMAAAACVAAK 12_149_10
      7900 JAMES      AAASRwAAMAAAACVAAL 12_149_11
      7902 FORD       AAASRwAAMAAAACVAAM 12_149_12
      7934 MILLER     AAASRwAAMAAAACVAAN 12_149_13

14 rows selected.

Elapsed: 00:00:00.02

 

标签:12,CBO,模式,149,选择,ROWS,rowid,SQL,优化
From: https://www.cnblogs.com/yuanzijian/p/17278940.html

相关文章

  • 单例模式的运用
    (1)案例背景:在实际的运用中,我们有时一个类不止需要产生一个对象,可能需要两个或者三个。在课上我们讲过,使用单例模式的思想可以实现多例模式,从而确保系统中某个类的对象只能存在有限个,请设计并实现代码,从而实现多例模式(2)实现步骤:由于本题的实现较为复杂,所以我们直接给出参考类图......
  • 2.基于成本的优化器
    1.集的势   定义:是指指定集合所包含的记录数,即是结果集的行数,cardinality表示对目标SQL的某个具体执行步骤的执行结果所包含的记录数的估算。如果是针对整个SQL,此时cardinality是指SQL最终结果所包含记录行数2.可选择率   定义:是指施加指定谓词条件后返回结果集的......
  • IWDG-CH32FV2x_V3x--低功耗模式的看门狗处理
    芯片睡眠模式下看门狗的使用:     由于独立看门狗的特殊性,一旦开启就不能再被关闭,除非发生复位。而睡眠时程序又是停止运行的,这样就无法及时喂狗,从而导致看门狗复位。那么就需要软件上做些特殊   处理     方法1:在低功耗模式下进行RTC定时唤醒CPU进行......
  • 代理模式 Proxy
    代理类模式在不改变原有类的基础上,代理一个类,并对其方法前后进行增强1.Java动态代理:代理实现某一个接口的类或接口本身接口类publicinterfaceBody{voiddoThing();}实现类:publicclassPersonimplementsBody{@OverridepublicvoiddoThing(){......
  • 1.基于规则的优化器
    1.创建测试环境--建表createtableemp_tempasselect*fromemp;createindexidx_mgr_temponemp_temp(mgr);createindexidx_deptno_temponemp_temp(deptno);--查询数据库select*fromemp_tempwheremgr>100anddeptno>10;EMPNOENAMEJOB ......
  • 通过 OG 标签优化网站在社交媒体上的显示效果
    介绍OG标签是OpenGraphProtocol的缩写,是一种由Facebook所定义和推广的元数据协议,用于在社交媒体上显示网页的预览内容。OG标签允许网站管理员控制他们网站页面在Facebook、Twitter、LinkedIn等社交媒体上的展示形式,可以设置网页的标题、描述、图像、URL等元素......
  • 企业实践 | 如何在阿里云裸金属服务器上使用UEFI模式实践安装国产银河麒麟V10操作系统
    [点击......
  • 解释器模式(Interpreter Pattern)
    一、概念解释器模式(InterpreterPattern)用于构造一个简单的语言解释器,将字符串按照自定义的方式解释执行,是一种不常用的设计模式除非从事底层开发自己需要去定义较为复杂的表达式,否则基本上不同这个设计模式二、适用场景(1)当一个语言需要解释执行,并可以将该语言中的句子......
  • 命令模式
    概述《设计模式》一书中对于“命令模式”的意图描述如下:将一个请求封装成为一个对象,从而可以使用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作一般“命令模式”的UML图如下所示:一般会在以下几种情况下使用命令模式:需要抽象出待执行的......
  • PAT Basic 1058. 选择题
    PATBasic1058.选择题1.题目描述:批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。2.输入格式:输入在第一行给出两个正整数N(≤ 1000)和M(≤ 100),分别是学生人数和多选题的个数。随后M行,每行顺次给出一道题的满分值(不超过5的......