高端网站建设如何收费,学校网站报价单,网页设计模板素材简单,简约智能设备制造公司网站统计24小时的红包感知专题#xff0c;有1.5亿行以上的数据#xff0c;Nokia给出的方法是先按小时执行算法#xff0c;再汇总各个小时的执行结果。
算法中包含了大量的 sum(case when)计算。
专题里有5个小节#xff0c;执行计划的时候#xff0c;需要跑5次where条件不同…统计24小时的红包感知专题有1.5亿行以上的数据Nokia给出的方法是先按小时执行算法再汇总各个小时的执行结果。
算法中包含了大量的 sum(case when)计算。
专题里有5个小节执行计划的时候需要跑5次where条件不同而查询列相同的sql需要执行5次sum(case when)很耗时间。
统计一天24小时的数据需要9个多小时才能计算完成。
--------------于是我想优化这个执行过程--------
我把每小时的数据case when的计算先执行合并24小时各小时的case when 结果然后再对合并的执行sum等计算。
发现select时速度很快sum速度也快5个小节执行计划时只要执行一次case when5次sum按理速度应该会提高很大。
--------------没想到现实不是这样的居然还原来的快----------
找原因发现问题在 create table xxxx as select 的性能问题
原来的方法虽然执行了5次sum(case when)很耗时间但因为汇总了数据create table 的表行数少创建表的速度快。
-------------
优化后的方法虽然select速度很快但是创建表的行太多24小时有1.5亿行这个表好大啊create table xxxx as select 的执行耗时比上面的还要多。
于是我醉了2天的优化白弄了。 --------下文是create table as select 性能优化方法------
http://blog.csdn.net/yangzhijun_cau/article/details/7396088 可专题工具系统在代码里硬编码了create table as select 的语句不能加入优化方法里的参数优化的方法用不上。