`
pw04_5
  • 浏览: 6790 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 优化1

阅读更多
Oracle 的优化器有两种优化方式:
即基于规则的优化方式(Rule-Based Optimization, 简称为 RBO)
和基于代价的优化方式(Cost-Based Optimization, 简称为 CBO), 在 Oracle8 及以后的版本, Oracle 强列推荐用 CBO 的方式
    RBO 方式: 优化器在分析 SQL 语句时, 所遵循的是 Oracle 内部预定的一些规则. 比如常见的, 当一个 where 子句中的一列有索引时走索引.
    CBO 方式: 它是看语句的代价(Cost), 这里的代价主要指 CPU 和内存. 优化器在判断是否用这种方式时, 主要参照的是表及索引的统计信息. 统计信息给出表的大小、有多少行、每行的长度等信息. 这些统计信息起初在库内是没有的, 是做 analyze 后才出现的, 很多时侯过期统计信息会令优化器做出一个错误的执行计划, 因些应及时更新这些信息.
    注意: 走索引不一定就是优的, 比如一个表只有两行数据, 一次 IO 就可以完成全表的检索, 而此时走索引则需要两次 IO, 这时全表扫描(full table scan)是最好.

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

设定选用哪种优化模式:
    A、Instance 级别我们可以通过在 initSID.ora 文件中设定 OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS
       如果没设定 OPTIMIZER_MODE 参数则默认用的是 Choose 方式.
    B、Sessions 级别通过 ALTER SESSION SET OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS 来设定.
    C、语句级别用 Hint(/*+ ... */) 来设定

为什么表的某个字段明明有索引, 但执行计划却不走索引?
    1、优化模式是 all_rows 的方式
    2、表作过 analyze, 有统计信息
    3、表很小, 上文提到过的, Oracle 的优化器认为不值得走索引
0
0
分享到:
评论

相关推荐

    Oracle优化1.ppt

    Oracle优化1.ppt

    Oracle优化Oracle优化

    Oracle优化Oracle优化Oracle优化Oracle优化Oracle优化Oracle优化

    基于成本的oracle优化法则中文版.rar

    基于成本的oracle优化法则中文版 基于成本的oracle优化法则中文版

    基于成本的ORACLE优化法则 英文原版

    基于成本的Oracle优化法则,作者:刘易斯, ★数据库领域的超级畅销书,世界级Oracle 大师Jonathan Lewis的最新力作! ★荣获2006年年度Oracle杂志编辑选择大奖!

    Oracle优化原则整理

    Oracle优化原则整理,里面主要是整理了一些写Oracle SQL 基本的优化方式~~

    基于成本的oracle优化

    oracle优化技巧oracle优化技巧oracle优化技巧oracle优化技巧

    ORACLE优化设计方案

    ORACLE优化的设计方案,前辈dba经验的总结。

    Oracle优化打包下载

    优化笔记 sql性能的调整-总结 SQL代码性能优化 Oracle语句优化53个规则详解 ORACLE9i优化设计与系统调整 oracle9i优化器介绍 oracle9i的查询优化 ……

    oracle优化-SQL优化

    oracle优化 SQL优化 嘞哥Oracle数据优化的集合 分享

    Oracle数据库优化详解

    其中主要包括收集数据库统计系统、收集列直方图、分析SQL执行计划、如何让CBO优化器选择最优的执行计划,以及如何使用Hint提示认为改变CBO优化器的执行计划等,希望此文档能够帮助大家更深入地理解Oracle优化!

    Oracle优化常用概念.pptx

    Oracle优化常用概念.pptx

    oracle优化规则总汇

    oracle优化规则总汇,详细全面 oracle优化规则总汇,详细全面 oracle优化规则总汇,详细全面

    oracle优化培训资料

    该培训资料中包括5大内容块: 1>Oracle分区技术及大数据量操作性能优化 2>Oracle性能问题一般解决思路 3>Oracle常用hint 4>Oracle动态图 5>Oracle执行计划和SQL调优

    ORACLE SQL性能优化系列

    ORACLE SQL性能优化系列 ORACLE SQL性能优化系列 ORACLE SQL性能优化系列

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    《Oracle优化日记:一个金牌DBA的故事》是一本介绍Oracle数据库优化方法的书,以一个实际的大型优化项目为原型,用日记的形式记录了一个优化小组的DBA 如何从纷繁的头绪中找到突破口,进而完成了一个看似不可能完成...

    oracle优化方法总结

    常用的oracle优化方法,希望对大家有帮助

    Oracle查询优化改写技巧与案例

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    基于成本的oracle优化法则 中文

    基于成本的oracle优化法则 中文 oracle 优化法则

    Oracle优化器介绍

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

Global site tag (gtag.js) - Google Analytics