有些报表的SQL查询逻辑较为复杂,因此导致报表打开的加载速度比较费时,如何能提升这个查询加载速度?
把查询的基础提前设计到链路里跑出来,报表上只做简单计算或者权限控制、筛选等?
大家有什么好的方案吗?
求大神指导!!!
首先要优化sql,能设索引的要设索引,能用视图的用视图,存储过程in参数做个转换等等,具体的办法可以自行百度。总之能在sql处理的就不要放到前台。
sql速度优化好了还慢的话,可以考虑分页或者增大服务内存等。
提升前端,首先,最好在数据库写好view做计算,前端只是简单传参查询,接收到数据就可以展示,如果取出数据放到本地做计算,加载肯定很慢
建议使用性能优化插件
数据库跑个定时更新,把你的复杂数据用数据仓库的形式存储.
让finereport只读取静态数据,不要参与计算.
这样会大大加速读取速度 .
写个存储过程,对存储数据进行更新。具体根据你自己的需求,查询数据插入到一个临时表。