sql不走索引案例

sql不走索引案例

查询视图

select count(1)
  from VI_ALL_ORDER vi
 where vi.DECLARATIONAPPLY_ACTUAL between to_date('2020-11-01', 'yyyy-mm-dd') and
       to_date('2020-12-21', 'yyyy-mm-dd');

该视图sql如下,此查询时间维护如下就不走索引

--不走索引写法
SELECT  so.*, (SELECT A.CUST_DATE FROM ACT_CUST_ORDER A
                  WHERE A.ORDER_CODE = SO.ORDER_CODE
                  AND A.CUST_DATE IS NOT NULL
                  AND A.CUST_NUM IS NOT NULL) AS DECLARATIONAPPLY_ACTUAL, --实际完成
                (SELECT A.DECLARATIONAPPLY_CREATED FROM ACT_CUST_ORDER A
                  WHERE A.ORDER_CODE = SO.ORDER_CODE
                    AND A.CUST_DATE IS NOT NULL
                    AND A.CUST_NUM IS NOT NULL) AS DECLARATIONAPPLY_CREATED, --首次时间
                (SELECT A.DECLARATIONAPPLY_LAS FROM ACT_CUST_ORDER A WHERE A.ORDER_CODE = SO.ORDER_CODE
                    AND A.CUST_DATE IS NOT NULL
                    AND A.CUST_NUM IS NOT NULL) AS DECLARATIONAPPLY_LAST, --最新时间
                (SELECT A.ACTUAL_FINISH_DATE FROM SO_ACT A  WHERE A.ORDER_NUM = SO.ORDER_CODE
                    AND A.ACT_ID = 'getPackageInfo') AS SCAN_DATE, --扫时间
                SO.CREATED
  FROM SO_SALES_ORDER SO,
       SO_SALES_ORDER_ITEM SOI
 WHERE SOI.ORDER_CODE = SO.ORDER_CODE
   AND SOI.PROD_QUANTITY > 0
   --走索引写法
SELECT  so.*,ac.CUST_DATE AS DECLARATIONAPPLY_ACTUAL, --实际时间
                (SELECT A.DECLARATIONAPPLY_CREATED  FROM ACT_CUST_ORDER A
                  WHERE A.ORDER_CODE = SO.ORDER_CODE AND A.CUST_DATE IS NOT NULL
                    AND A.CUST_NUM IS NOT NULL) AS DECLARATIONAPPLY_CREATED, --首次时间
                (SELECT A.DECLARATIONAPPLY_LAST FROM ACT_CUST_ORDER A WHERE A.ORDER_CODE = SO.ORDER_CODE
                    AND A.CUST_DATE IS NOT NULL
                    AND A.CUST_NUM IS NOT NULL) AS DECLARATIONAPPLY_LAST, --最新时间               
                (SELECT A.ACTUAL_FINISH_DATE  FROM SO_ACT A WHERE A.ORDER_NUM = SO.ORDER_CODE
                    AND A.ACT_ID = 'getPackageInfo') AS SCAN_DATE, --时间
                SO.CREATED
  FROM SO_SALES_ORDER SO,
       SO_SALES_ORDER_ITEM SOI,
       ACT_CUST_ORDER AC,
 WHERE SOI.ORDER_CODE = SO.ORDER_CODE
   AND SOI.PROD_QUANTITY > 0
      AND AC.ORDER_CODE = SO.ORDER_CODE
   AND AC.CUST_DATE IS NOT NULL
   AND AC.CUST_NUM IS NOT NULL

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^止境^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值