加入distinct 和不加入执行时间相差几千倍

SELECT DISTINCT a.batch_no,
                TO_CHAR ((a.sap_release_date - 1 / 24),
                         'mm/dd/yy hh24:mi:ss'
                        ) AS sap_release_date
           FROM (SELECT   batch_no, MAX (wo.sap_release_date)
                                                             sap_release_date,
                          MAX (wo.create_date) AS sfc_donwload_time
                     FROM dfms.wip_d_wo_master wo
                    WHERE wo.sfg_type = 'SYSTEM'
                      AND wo.sap_release_date >=
                                              TO_DATE ('20100226', 'yyyymmdd')
                      AND wo.sap_release_date <
                                           TO_DATE ('20100226', 'yyyymmdd')
                                           + 1
                      AND wo.plant_code IN ('MI02', 'MI03', 'MI04')
                 GROUP BY wo.batch_no) a,
                dfms.wip_d_wo_master b
          WHERE a.batch_no = b.batch_no
            AND a.sap_release_date = b.sap_release_date
            AND b.sfg_type = 'SYSTEM'
            AND b.sap_release_date >= TO_DATE ('20100226', 'yyyymmdd')
            AND b.sap_release_date < TO_DATE ('20100226', 'yyyymmdd') + 1
            AND b.plant_code IN ('MI02', 'MI03', 'MI04')



wip_d_wo_master   是一个 600 多万的大表,  batch_no , sap_release_date  建立有 index , 包含有 DISTINCT
运行很慢 (Toad中执行),  但是在Web Page中执行却很快 ,不包含 DISTINCT 在Toad中执行也很快, Cost都差不多 。

下图中 IDX9_XXXXXXX  是字段  SAP_RELEASE_DATE  的索引 。

下图1 是有 DISTINCT 的执行计划 , 执行需要 1分钟 40 秒 。
下图2 是 没有 DISTINCT 的执行计划,  执行需要不到1秒 。

[ 本帖最后由 tolywang 于 2010-2-27 12:04 编辑 ]
20100227_62d9dd13afe531c72a0aGZtbaH6jGpNC.jpg
cost.jpg

20100227_15562fc94cc00d6aad94euONuWzj0T7I.jpg
cost2.jpg

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

转载于:http://blog.itpub.net/35489/viewspace-628030/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值