解决方案 »

  1.   

    改为这样应该会快一点,先通过索引进行检索,然后再进行连接操作
    (select id,prod_date from XX_PC_PRO_WELL_DAILY 
    WHERE prod_date BETWEEN  AND ) A
      

  2.   

    结果集都有300多万的量级,说明没有有效的过滤条件。hash join是对的,要优化只能通过io
    如果a表字段超过十几个的话,可以试试在a表上建组合索引(prod_date,well_id,liq_prod_daily,oil_prod_daily,water_prod_daily)
      

  3.   

    XX_PC_PRO_WELL_DAILY 这个表的字段比较多,我按你的方法见了组合索引,现在9秒左右,提高了3倍多。还有没有其它提速的方法?
    能不能加hint人工调整执行计划,让从下图红色框中的左边执行计划变成右边的?因为join on中的条件和where中的条件都存在于索引中,所以能不能先和索引hash 
      

  4.   

    table access by index rowid...
    你图片上的代码不全,看看是否还有xx_pc_pro_well_daily表上用到的字段不在该组合索引中,可以加上下次代码和执行计划贴得全一点吧