不好意思,对oracle不怎么熟悉,执行计划结果出来了,但是看不懂,汗~主表A和子表B均建立了索引,作关联是指?

解决方案 »

  1.   

    贴上实例语句和执行计划,其中Flowid是两个表关联的字段SQL> select A.Flowid from TGWMain A left join TGWXX B on A.Flowid=B.Flowid where B.userid='zys'Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=731 Card=1892 Bytes=
              295152)   1    0   HASH JOIN (Cost=731 Card=1892 Bytes=295152)
       2    1     TABLE ACCESS (FULL) OF 'TGWXX' (Cost=706 Card=1892
              Bytes=196768)   3    1     TABLE ACCESS (FULL) OF 'TGWMAIN' (Cost=15 Card=3828
               Bytes=199056)Statistics
    ----------------------------------------------------------
              0  recursive calls
              6  db block gets
           4647  consistent gets
            610  physical reads
              0  redo size
            219  bytes sent via SQL*Net to client
            372  bytes received via SQL*Net from client
              1  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              0  rows processed希望高手可以找到查找慢的原因
      

  2.   

    这是基于成本的优化,建议
    1.对A,B表对字段Flowid建立索引
    2.对B表的userid建立索引
    3.建议建完索引后分析表:analyze table A estimate statistics;