Oracle认证:何时使用绑定变量性能反而差
日期:2007年5月22日 作者: 查看:[大字体 中字体 小字体]-
扫描成本和OPTIMIZER_INDEX_COST_ADJ
我们知道,在CBO模式下,Oracle会计算各个访问路径的代价,采用最小代价的访问路径作为语句的执行计划。而对于索引的访问代价的计算,需要根据一个系统参数OPTIMIZER_INDEX_COST_ADJ来转换为与全表扫描代价等价的一个值。这是什么意思呢?我们先稍微解释一下这个参数:OPTIMIZER_INDEX_COST_ADJ。它的值是一个百分比,默认是100,取值范围是1~10000。当估算索引扫描代价时,会将索引的原始代价值乘以这个百分比,将换算后的值作为与全表扫描代价比较的值。也就是说,当这个值为100时,计算出的索引扫描代价就是它的原始代价: COST_COM = COST_ORG * OPTIMIZER_INDEX_COST_ADJ/100
看以下例子:
以下是引用片段:
SQL> create table T_PEEKING (a NUMBER, b char(1), c char(2000));
Table created.
SQL>
SQL> create index T_PEEKING_IDX1 on T_PEEKING(b);
Index created.
SQL> begin
2 for i in 1..1000 loop
3 insert into T_PEEKING values (i, 'A', i);
4 end loop;
5
6 insert into T_PEEKING values (1001, 'B', 1001);
7 insert into T_PEEKING values (1002, 'B', 1002);
8 insert into T_PEEKING values (1003, 'C', 1003);
9
10 commit;
11 end;
12 /
PL/SQL procedure sUCcessfully completed.
注意,我们给索引字段B插入的值中只有3个distinct值,记录数是1003,它的集的势很高(1003/3)=334。以下是引用片段:
SQL>
SQL> analyze table T_PEEKING compute
statistics for table for all indexes for all indexed columns;
Table analyzed.
SQL>
我们看下索引扫描的代价是多少: SQL> show parameter OPTIMIZER_INDEX_COST_ADJ以下是引用片段:
NAME TYPE VALUE
------------------------------------ ----------- ------
optimizer_index_cost_adj integer 100
SQL> delete from plan_table;
0 rows deleted.
SQL>
SQL> eXPlain plan for select
/*+index(a T_PEEKING_IDX1)*/ * from T_PEEKING a where b = :V;
Explained.
SQL> select lpad(' ', 2*(level-1))operation' 'options' '
2 object_name' 'decode(id, 0, 'Cost='position) "Query - [1] [2] [3] [4] [5] [6] 下一页
-
- Oracle认证:何时使用绑定变量性能反而差 相关文章:
- Oracle认证:何时使用绑定变量性能反而差 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·Oracle认证:何时使用绑定变量性能反而差
- ·夺取月薪之冠-Oracle认证
- ·Oracle认证的专家之见(下)
- ·Oracle认证常识
- ·Oracle认证培训辅导:巧取指定记录
- ·Oracle认证专家考试科目一览表
- ·走近Oracle认证
- ·Oracle认证介绍
- ·Oracle三层认证计划
- ·Oracle认证一览(上)
- ·Oracle 9I OCP认证过程
- ·Oracle 课程描述
- ·Oracle认证一览(下)
- ·Oracle数据库简介
- ·“大师”级别的认证:Oracle9i OCM
- ·Oracle 8i 到 9i 升级之路
- ·从 Oracle 学习 Oracle
- ·Oracle认证:巧取指定记录与外关联查询
- ·想知道OCP证书在加拿大值多少钱吗?
- ·Oracle 认证的专家之见(上)
