分享

尽量在SQL中Group

 yongcheng.min 2011-01-25

对于汇总类型的分析报表,在报表生成时往往需要进行分组聚集运算,如果在数据库中先进行一次分组聚集,能够大大减少取到报表服务器的记录数,加快取数和报表运算的速度。

看如下报表:

1.png

这是一个典型的交叉分组报表,其sql有两种写法:

第一种:select 产品,客户,销量 from 购买记录表

第二种:select产品,客户,sum(销量) from 购买记录表 group by 产品,客户

而报表的做法都一样,如下图所示:

2.png

分析:

采用第一种做法,不仅仅取到报表服务器上记录数多了,取数速度慢,而且在报表端对购买记录表进行分组运算的时候速度也慢了;

采用第二种做法,数据库虽然要进行分组运算,但是数据库中有索引,运算速度快,且取到报表服务器端的记录数大大减少,取数速度大大加快,因此在报表端进行分组运算的时候只要对很少的记录数进行,报表的运算速度大大加快了。

总结:第二种做法的性能远远优于第一种

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多