当前位置: 代码迷 >> DB2 >> sql优化解决思路
  详细解决方案

sql优化解决思路

热度:3718   发布时间:2013-02-26 00:00:00.0
sql优化
表结构:
CREATE TABLE "OMS"."OMS_CAR_SALE_RMT" (
  "SHOP_CODE" CHARACTER(6) NOT NULL,
  "KIND_CODE" VARCHAR(10),
  "EMISSIONS" VARCHAR(10),
  "TYPE_CODE" VARCHAR(20),
  "INSIDE_COLOR" VARCHAR(10),
  "OUTSIDE_COLOR" VARCHAR(20),
  "SEND_DATE" TIMESTAMP,
  "RECEIVE_DATE" TIMESTAMP,
  "SALE_DATET0" TIMESTAMP,
  "SALE_DATET2" TIMESTAMP

  IN "OMS_SPACE";

我写的sql:
SELECT SHOP_CODE AS shopCode ,(days (SALE_DATET0) - days (date(RECEIVE_DATE))) AS num    
FROM OMS.OMS_CAR_SALE_RMT WHERE days (SALE_DATET0) > days (date(RECEIVE_DATE))   
AND days (SALE_DATET0) > days(current date - 1 year) 
AND SHOP_CODE = ? ORDER BY num DESC    


这句sql能优化一下吗?执行几千次好慢!  

------解决方案--------------------------------------------------------
建立 冗余字段,
 days (SALE_DATET0) 、 days (date(RECEIVE_DATE))   、
AND days (SALE_DATET0) 、 days(current date - 1 year) 
在字段上建立复合索引试试
------解决方案--------------------------------------------------------
SHOP_CODE, num  建立索引吧。sql应该是没有什么好优化的了。
------解决方案--------------------------------------------------------
查看你的执行计划看优化前后的变化
  相关解决方案