Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

13

积分

0

好友

0

主题
1#
发表于 2012-5-9 10:49:01 | 查看: 2927| 回复: 1
sql语句:
select sum(nvl(dlver_amt, :"SYS_B_0"))
  from tb_al046 l, tb_pay_check chk, tb_aj002 j
where l.rcpt_no = chk.rcpt_no
   and chk.is_check = :"SYS_B_1"
   and chk.real_match = :"SYS_B_2"
   and l.ord_id = j.ord_id
   and l.ord_seq = j.ord_seq
   and j.chg_yn = :"SYS_B_3"
   and l.trans_date between :1 and :2 --+ :"SYS_B_4"
   and chk.check_date between :3 and :4 --+ :"SYS_B_5"
   and l.dlver_cd = :5
   and area_nm = :6

修改单列索引为复合索引
drop index IX_TB_AL046_TRANS_DATE;
create index IX_TB_AL046_TRANS_DATE on tb_al046(TRANS_DATE,DLVER_CD) tablespace sale_tablespace_ix;
analyze index IX_TB_AL046_TRANS_DATE compute statistics;

结果:原执行计划中BITMAP CONVERSION FROM ROWIDS消失,但是cost从333升到了6673。复合索引是否应该创建,另外BITMAP CONVERSION FROM ROWIDS是否应该消除?

1.jpg (139.73 KB, 下载次数: 160)

创建复合索引前执行计划

创建复合索引前执行计划

2.jpg (113.79 KB, 下载次数: 163)

创建复合索引后执行计划

创建复合索引后执行计划

2#
发表于 2012-5-9 10:54:34
Cost 并非真实世界中评判执行计划好坏的标准:

评判执行计划好坏的 标准应当是:

1. 实际的执行时间               大多数时间以第一条为第一准则
2. 执行消耗的资源,包括物理读、逻辑读、导致的并发争用   在第一条 执行时间没有区别的情况下 参考第二条

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 17:58 , Processed in 0.052095 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569