+ -
当前位置:首页 → 问答吧 → 求大神优化SQL

求大神优化SQL

时间:2011-12-19

来源:互联网

SELECT 大类名称,SUM(SL) 数量
 INTO #库存量
 FROM (
SELECT 大类名称,SHANGPIN.SPMC,SUM(VW_CKJXCMX.SL) AS SL
 FROM VW_CKJXCMX join CANGKU ON VW_CKJXCMX.CKDM=CANGKU.CKDM
  JOIN SHANGPIN ON VW_CKJXCMX.SPDM=SHANGPIN.SPDM
JOIN A_商品名称分类 ON SHANGPIN.SPMC = A_商品名称分类.商品名称
WHERE VW_CKJXCMX.QR='1' AND VW_CKJXCMX.RQ<=@时间后 and LEFT(CANGKU.CKDM,4)=@渠道
  AND (SHANGPIN.BYZD5 in (@季节)) AND (SHANGPIN.BYZD8=@年份)
 GROUP BY SHANGPIN.SPMC,SHANGPIN.DWMC,SHANGPIN.BZSJ,大类名称
)AAA GROUP BY 大类名称

这句SQL 执行要30秒左右
请改该怎么优化啊

作者: wszhongwen   发布时间: 2011-12-19

语句没什么好优化的了

作者: szstephenzhou   发布时间: 2011-12-19

子查询放临时表试试。

作者: fredrickhu   发布时间: 2011-12-19

SQL code
SELECT  大类名称 ,
        sum(SL) 数量
INTO    #库存量
FROM    ( SELECT    大类名称 ,
                    SHANGPIN.SPMC ,
                    sum(VW_CKJXCMX.SL) AS SL
          FROM      VW_CKJXCMX
                    JOIN CANGKU ON VW_CKJXCMX.CKDM = CANGKU.CKDM
                    JOIN SHANGPIN ON VW_CKJXCMX.SPDM = SHANGPIN.SPDM
                    JOIN A_商品名称分类 ON SHANGPIN.SPMC = A_商品名称分类.商品名称
          WHERE     VW_CKJXCMX.QR = '1'
                    AND VW_CKJXCMX.RQ <= @时间后
                    AND left(CANGKU.CKDM, 4) = @渠道
                    AND ( SHANGPIN.BYZD5 IN ( @季节 ) )
                    AND ( SHANGPIN.BYZD8 = @年份 )
          GROUP BY  SHANGPIN.SPMC ,
                    SHANGPIN.DWMC ,
                    SHANGPIN.BZSJ ,
                    大类名称
        ) AAA
GROUP BY 大类名称
--看下where条件上的字段有没有索引.尽量在where字段上面建立索引

作者: kingtiy   发布时间: 2011-12-19

热门下载

更多