Oracle数据库优化器的优化方式

上传人:m**** 文档编号:49020585 上传时间:2018-07-22 格式:DOCX 页数:2 大小:14.10KB
返回 下载 相关 举报
Oracle数据库优化器的优化方式_第1页
第1页 / 共2页
Oracle数据库优化器的优化方式_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《Oracle数据库优化器的优化方式》由会员分享,可在线阅读,更多相关《Oracle数据库优化器的优化方式(2页珍藏版)》请在金锄头文库上搜索。

1、OracleOracle 数据库优化器的优化方式数据库优化器的优化方式Oracle 是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。本文介绍 Oracle 优化器,它是一个非常好用的工具。Oracle 在执行一个 SQL 之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条 SQL 可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。相信你一定会用 Pl/sql Developer、Toad 等工具去看一个语句的执行计划,不过你可能对 Rule、Choose、

2、First rows、All rows 这几项有疑问,因为我当初也是这样的,那时我也疑惑为什么选了以上的不同的项,执行计划就变了?1.Oracle 优化器的优化方式Oracle 优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization 简称为 RBO)和基于代价的优化方式(Cost-Based Optimization 简称为 CBO)。A、RBO 方式:优化器在分析 SQL 语句时,所遵循的是 Oracle 内部预定的一些规则。比如我们常见的,当一个 where 子句中的一列有索引时去走索引。B、CBO 方式:依词义可知,它是看语句的代价(Cost)了,

3、这里的代价主要指 Cpu 和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的是你在做analyze 后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些我们应及时更新这些信息。在 Oracle8 及以后的版本,Oracle 列推荐用 CBO 的方式。我们要明了,不一定走索引就是优的,比如一个表只有两行数据,一次 IO 就可以完成全表的检索,而此时走索引时则需要两次 IO,这时对这个表做全表扫描(full table scan)是最好的。捕鱼游戏 http:/2.Oracle 优

4、化器的优化模式(Optermizer Mode)优化模式包括 Rule,Choose,First rows,All rows 这四种方式,也就是我们以上所提及的。如下我解释一下:Rule:不用多说,即走基于规则的方式。Choolse:这是我们应观注的,默认的情况下 Oracle 用的便是这种方式。指的是当一个表或或索引有统计信息,则走 CBO 的方式,如果表或索引没统计信息,表又不是特别的小,而且相应的列有索引时,那么就走索引,走 RBO 的方式。First Rows:它与 Choose 方式是类似的,所不同的是当一个表有统计信息时,它将是以最快的方式返回查询的最先的几行,从总体上减少了响应时

5、间。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=;来设定。C、语句级别这些需要用到 Hint 棋牌评测网 http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 数据库

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号