日期:2014-05-17  浏览次数:20797 次

sql 的优化。。。

SELECT o.* FROM ORDER_RELEASE o, order_release_status orss 
WHERE orss.order_release_gid = o.order_release_gid    
AND   orss.status_type_gid = 'DUPONTCHN.KPI_COUNT'
AND   glog_util.remove_domain(orss.status_value_gid)='Y' 
AND   EXISTS (SELECT 1 FROM ORDER_RELEASE o1 WHERE o.order_release_gid = o1.order_release_gid 
              AND (o1.ORDER_RELEASE_TYPE_GID= 'DUPONTCHN.OUTBOUND' 
  OR o1.ORDER_RELEASE_TYPE_GID= 'DUPONTCHN.RETURN'
          OR o1.ORDER_RELEASE_TYPE_GID='DUPONTCHN.SAMPLE'))



这个可以优化吗? 好像用 OR 不好。。。
------解决方案--------------------
哥们
这种问题最好把统计信息和执行计划连带贴上来

------解决方案--------------------
引用:
哥们
这种问题最好把统计信息和执行计划连带贴上来


我觉得这个语句 不是很复杂 应该会有人有过这种经验 所以没有贴。 

------解决方案--------------------
不用嵌套语句吧, 直接用 字段 order_release_gid in (....) 不就好了么。 先把语句简化了, 再看执行路径