2 jay10509 jay10509 于 2013.09.12 17:15 提问

求高手优化sql 主要针对group by

SELECT r.custid custid, i.productid,
i.officialsocialprice price,
SUM(i.quanitity) amount
FROM IMEIBATCH i, RDCUST r, RDCUSTDETAIL d
WHERE (i.vendororgacode = 'ZD' OR
i.vendororgacode IN
(SELECT orgacode FROM organiza WHERE parentorgacode = 'ZD'))
AND i.provorgacode = d.orgcode
AND r.custid = d.custid

       AND i.inputdate BETWEEN TO_DATE('2013-07-15', 'YYYY-MM-DD') AND
           TO_DATE('2013-07-31', 'YYYY-MM-DD') + 1
     GROUP BY r.custid, i.productid, i.officialsocialprice

加上group by custid之后 速度明显下降!求高手指点一二

1个回答

en_joker
en_joker   2017.11.16 11:36

1、把查询条件中相关查询条件放到from子句后面,减少查询。
2、不用or,会查全表,你可以试一下用union 去代替。
3、在group by 和where子句的判断条件加索引等。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!