DB2查询缓慢,如何优化

SELECT E.ORDERNUM, E.SBDNUM,( CASE WHEN E.SBDNUM IS NULL ORTRIM(E.SBDNUM) = '' THEN E.CORPNAME ELSE E.CONFIRMCORPNAME END ) AS CORPNAME, E.ORDERDATE, E.SCHEDULEDATE,E.MEMBERCODE,COALESCE(COUNTRYCODE,'142') ASCOUNTRYCODE,E.LANGTYPE,DISTRICTCODE,E.NOT...显示全部

SELECT E.ORDERNUM, E.SBDNUM,( CASE WHEN E.SBDNUM IS NULL ORTRIM(E.SBDNUM) = '' THEN E.CORPNAME ELSE E.CONFIRMCORPNAME END ) AS CORPNAME,
E.ORDERDATE, E.SCHEDULEDATE,E.MEMBERCODE,COALESCE(COUNTRYCODE,'142') ASCOUNTRYCODE,E.LANGTYPE,DISTRICTCODE,E.NOTE,E.SERVICETYPE,
  E.PRODUCTCODE,M.CREDITOR,M.CROPERATOR,P.CNAME AS creditorName, P2.CNAMEAS croperatorName  
  FROM ERP.T_REPORTORDER E
  JOIN ERP.T_REPORTMANAGE M ON E.ORDERNUM = M.ORDERNUM  
  LEFT JOIN ERP.TS_EMPLOYEES P ON P.EMPLOYEEID=M.CREDITOR
  LEFT JOIN ERP.TS_EMPLOYEES P2 ON P2.EMPLOYEEID=M.CROPERATOR  
  WHERE SUBSTR(E.DISTRICTCODE,1,2) =ANY (SELECT SUBSTR(DISTRICTCODE,1,2)
  FROM ERP.TC_EMPLOYEEATDISTRICT WHERE EMPLOYEEID='SINO0188' )  
  AND ( M.REPORTSTATUS = 'G' Or M.REPORTSTATUS = 'F' ) ANDE.ORDERSTATE != 'C'
  AND E.ORDERDATE >=DATE('2012-04-08')  AND NOT EXISTS
  (SELECT CO.ORDERNUM FROM  ERP.T_PURCHASEORDERINFO CO WHERECO.ORDERNUM = E.ORDERNUM AND CO.ENTRUSTSTATUS!='3' AND
  CO.ENTRUSTSTATUS!='4' AND COMMCODE NOT LIKE 'M%' ANDCO.LANGTYPE='1'  and isFinance='0' )

以上T_REPORTORDER,T_REPORTMANAGE和T_PURCHASEORDERINFO表都是百万级数据,怎么一欧化

收起
参与22

查看其它 6 个回答flywiththewind的回答

flywiththewindflywiththewind其它easy world

explain db2advis runstats reorg table partition or other solutions

系统集成 · 2017-02-22
浏览2620

回答者

flywiththewind 最近回答过的问题

回答状态

  • 发布时间:2017-02-22
  • 关注会员:8 人
  • 回答浏览:2620
  • X社区推广