ITPub博客

首页 > 数据库 > Oracle > Oracle学习系列—数据库优化—CBO介绍

Oracle学习系列—数据库优化—CBO介绍

原创 Oracle 作者:PercyWang 时间:2007-04-16 09:43:53 0 删除 编辑

CBO(Cost-based optimizer)是根据系统统计信息并以系统吞吐为最佳优化目标的Oracle优化方式。

边学边翻译,边翻译边体会..

[@more@]

通常情况下,CBO是缺省的

  1. 假如数据字典中包括至少一个待访问表的统计信息,那么优化器将选择基于成本的优化方式,以获取最大吞吐量的目标。
  2. 假如数据字典仅包含部分统计信息,仍将使用CBO方式,但是优化器不得不猜测那些没有任何统计信息的表的统计。这可能会导致次优化的执行计划。
  3. 假如数据字典没有包含任何待访问表的统计信息,优化器将选择RBO方式

以下是要必须使用CBO进行优化的内容

  1. 分区表和分区索引
  2. 索引组织表
  3. 翻转键索引
  4. Select 语句中的SAMPLE语法
  5. 并行查询和并行DML
  6. 星星转换和星星连接
  7. Etensible优化
  8. 物化视图的查询重写
  9. Enterprise Manager Progress Meter
  10. Hash连接
  11. 位图索引和位图join索引
  12. 跳索引扫描(Index Skip Scans)

CBO的组成

  1. 查询转换(Query Transformer)
  2. 评估(Estimator)
  3. 计划生成器(Plan Generator)

CBO


查询转换(Query Transformer)

查询转换器主要分析下面4种查询转换信息

Ø 视图合并(View Merging).

Ø 断言(Predicate Pushing)

Ø 非嵌套子查询(Subquery Unnesting)

Ø 物化视图的查询重写(Query Rewrite with Materialized Views)

评估(Estimator)

评估器产生下面三种类型的度量值

Ø 选择性(Selectivity)

选择性代表了一个记录集(基表,视图,Group By结果集)中的片断,选择性通常和一个查询断言进行绑定.一个断言的选择性表明了一个结果集的行数通过了断言测试.选择性的范围是从0.01.0,0.0的选择性表示在结果中没有记录被选择,1.0的选择性表示所有行被选中

Ø 基数(Cardinality)

基数表示一个行集中的行数.

基本基数 是一个基表的记录数,通过分析表(Analyze Table)能够被获取,评估器通过表的分区数(Extents)来估计基本基数

有效基数 是从基表中选择到的记录数,有效基数取决于断言的查询.

连接基数 是两个行集连接后产生的行集.

Distinct基数 是行集中某个字段的Distinct的行数.

Group基数 是分组后产生的行数

Ø 成本(Cost)

成本代表资源使用的单位,CBO使用I/O,CPU,内存做为工作单位.

计划生成器(Plan Generator)

主要功能是试图找出所有可能的不同的组合,并找到最低成本的执行计划

一个SQL执行计划和执行步骤

详细参看Oracle9i/Database Performance Tuning Guide and Reference

EXPLAIN PLAN FOR

SELECT e.employee_id, j.job_title, e.salary, d.department_name

FROM employees e, jobs j, departments d

WHERE e.employee_id < 103

AND e.job_id = j.job_id

AND e.department_id = d.department_id;

CBO

CBO


  1. 全表访问Employees行数据(Employee _ID<103太没有效率,故不走索引)
  2. 根据Employees行记录,通过唯一索引JOB_ID_PK扫描访问JOB表的JOB_ID字段
  3. 根据JOB_ID获取JOBS表的ROWID
  4. Employees表的结果集和Jobs表进行嵌套循环访问(13进行嵌套访问)
  5. 根据Employees行记录,通过唯一索引扫描访问Departments表的Department_ID字段
  6. 根据Department_ID获取ROWID
  7. 64的结果集进行嵌套循环访问
  8. 返回记录集

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8128313/viewspace-910971/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    127
  • 访问量
    1751683