| « | 六月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||
CBO(Cost-based optimizer)是根据系统统计信息并以系统吞吐为最佳优化目标的Oracle优化方式。
边学边翻译,边翻译边体会..
通常情况下,CBO是缺省的
以下是要必须使用CBO进行优化的内容
CBO的组成

查询转换(Query Transformer)
查询转换器主要分析下面4种查询转换信息
Ø 视图合并(View Merging).
Ø 断言(Predicate Pushing)
Ø 非嵌套子查询(Subquery Unnesting)
Ø 物化视图的查询重写(Query Rewrite with Materialized Views)
评估(Estimator)
评估器产生下面三种类型的度量值
Ø 选择性(Selectivity)
选择性代表了一个记录集(基表,视图,Group By结果集)中的片断,选择性通常和一个查询断言进行绑定.一个断言的选择性表明了一个结果集的行数通过了断言测试.选择性的范围是从0.0到1.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;

