像我这样的SQL该如何优化呢?
SELECT SUM(Amount) AS SumAmount, SUM(( Amount * (UX/100) )) AS RUX, SUM(( (Amount * (UX6/100)) - ( Amount * (UX/100) ) )) RUX6 FROM Order;
像SUM这种计算还有7个列~10个列。
如果能加速呢?
如果每一个都计算好,放到另一个表,我的业务流又是很麻烦的了,要一条一条拿出来计算。现在只能在SQL进行计算。但是速度不怎么好。像这样,有什么办法优化呢?
------解决方案--------------------你这个慢应该不是在多少列上面,而是缺少where条件和group by条件,导致全表运算,当表数据很大的时候,自然速度就低,一般对聚合函数的优化建议是在对应的列上加索引,如果有group by,group by用到的列也加索引。
如果不是经常要运算的数据,比如你每天才汇总一次,那么完全可以在每天晚上0点再执行,然后存到一个表中供明天使用。
另外,一般的性能优化着手点是执行计划,所以如果你觉得慢,最好提供你的执行计划看看