首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

像小弟我这样的SQL该怎么优化呢

2013-02-25 
像我这样的SQL该如何优化呢?SELECT SUM(Amount) AS SumAmount, SUM(( Amount * (UX/100) )) AS RUX, SUM((

像我这样的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点再执行,然后存到一个表中供明天使用。

另外,一般的性能优化着手点是执行计划,所以如果你觉得慢,最好提供你的执行计划看看

热点排行