报表查询,懂得都懂,具有大数据量,多表关连,计算维度多,单纯SQL关连查询统计慢,领导关注度高等特点。在本人接触的项目中,一般对实时性的要求可以适当滞后。针对上述特点,本人从已开发几个报表功能中,使用了一种仿物化视图技术的报表查询优化方案。使得报表的查询速度得到大幅优化。具体如下:
思路:
报表的结果集数据其实是很少的,如果使用物化视图,则直接查询结果集数行,数十行数据。哪怕是全表查询,也是极快的。因为视图表存储了报表结果。但由于报表涉及到大量的计算。因此,物化视图不能满足业务需求。就有了下列方案:
1、建立报表结果表。
2、通过定时任务、按钮触发报表查询功能。
3、清除报表结果表所有数据。
4、将最新报表查询结果写入报表结果表中。
5、正常查询报表直接查询报表结果表。
时序如下:
在报表结果集表中的数据就那么几行几十行。单表查询速度很快。如果报表实时性要求不高。该方案还是挺快的。仅供参考。