当前位置: 代码迷 >> Oracle开发 >> 查询速度太慢,想了好久了,求话语优化建议
  详细解决方案

查询速度太慢,想了好久了,求话语优化建议

热度:88   发布时间:2016-04-24 06:37:07.0
查询速度太慢,想了好久了,求语句优化建议
select SEQ_BUSINESS_DAILY.nextval as id,
         t4.COUNT_DATETIME,
         t4.TERMINAL_NO,
         t4.DEP_ID,
         t4td.pDEPID    as DELIVER_DEP_ID,
         t4.LOCATION,
         t4.DELIVED,
         t4.INPUT_DELIVER,
         t4.DIRECT_DELIVER,
         t4.NOINFO_DELIVER,
         t4.HADINFO_PERCENT,
         t4.DELIVED_FEEDBACK,
         t4.FEEDBACK_PERCENT,
         t4.TAKED,
         t4.TAKED_SELF,
         t4.TAKED_SELF_PERCENT,
         t4.TAKED_DAY2,
         t4.TAKED_DAY3,
         t4.TAKED_DAY3_UP,
         t4.PRE_LEFT,
         t4.RETRIEVED,
         t4.CUR_LEFT,
         t4.BALANCE,
         t4.TAKE_DAY3_PERCENT,
         t4.BAD_TERMINAL
    from (select t3.*,
                  (CASE
                 WHEN DELIVED = 0 THEN
                  1
                 ELSE
                  round((DELIVED_FEEDBACK / DELIVED),4)
               END) as FEEDBACK_PERCENT,
               (CASE
                 WHEN TAKED = 0 THEN
                  1
                 ELSE
                  round((TAKED_SELF / TAKED),4)
               END) as TAKED_SELF_PERCENT,
               (DELIVED - TAKED + PRE_LEFT - RETRIEVED - CUR_LEFT) as BALANCE,
               (CASE
                 WHEN DELIVED = 0 THEN
                  0
                 ELSE
                  round(((DELIVED - NOINFO_DELIVER) / DELIVED),4)
               END) as HADINFO_PERCENT,
               
                (CASE
                   WHEN DELIVED_BEFORE2 = 0 or DELIVED_BEFORE2 is null THEN
                    1
                   ELSE
                    round(1-(RETRIEVED/DELIVED_BEFORE2),4)
                 END) as TAKE_DAY3_PERCENT
            from (
                  
                  select t_terminal.terminal_no,
                          t_terminal.location,
                          t_terminal.dep_id,
  相关解决方案