ITPub博客

首页 > Linux操作系统 > Linux操作系统 > nested loop心得

nested loop心得

原创 Linux操作系统 作者:wenhual43 时间:2012-09-11 14:43:47 0 删除 编辑
今天调优SQL,语句如下:
       select    a.seq_captureway as CAPTUREWAYNO,
       a.dd_captureway  as CAPTUREWAYCODE,
       a.seq_animalmoni as ANIMALMONINO,
 b.nm_worker as WORKERNM
  from rat_caveflea a, rat_worker b
 where a.seq_worker = b.seq_worker(+)
   and a.seq_animalmoni = '11308'
   and a.ZONECODE like '53%'
原来的执行计划有下面一段
  NESTED LOOPS OUTER
    TABLE ACCESS  FULL RAT_CAVEFLEA FILTER("A"."SEQ_ANIMALMONI"='11308' AND "A"."ZONECODE" LIKE '53%')
   TABLE ACCESS BY INDEX ROWID REDFIS RAT_WORKER 
    INDEX UNIQUE SCAN   PK_RAT_WORKER    access("A"."SEQ_WORKER"="B"."SEQ_WORKER"(+))  
添加索引create index IDX_rat_caveflea_AZ on rat_caveflea(seq_animalmoni,ZONECODE),rat_caveflea 表没有全表扫描了。
发现:虽然有a.seq_worker = b.seq_worker(+),但是在嵌套循环里,a表只要能通过其他过滤条件过滤就行了,在2个表关联的地方没有必要建立索引。
测试:建立索引 create index IDX_rat_caveflea_AZW on rat_caveflea(seq_animalmoni,ZONECODE,seq_worker)nologging;分析表后,发现还是用的索引IDX_rat_caveflea_AZ。

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

下一篇: redhat5修改主机名
请登录后发表评论 登录
全部评论

注册时间:2011-08-03

  • 博文量
    32
  • 访问量
    130412