帆软使用问题之页面加载速度慢

   最近在做帆软报表的维护当中发现,大家对帆软的使用时,发现加载太慢甚至加载不出来的情况。于是就开始着手解决这个问题,下面对此次维护做一个简单的总结。

    首先在问题出现之后,根据问题出现的情况我在后台测试了一下没有什么问题,于是我首先想到的是可能是网络问题,或者是打开的报表太多,导致无法加载出来。这些虽然都可能是问题产生的原因,我将这些问题做了个归类,大致可以分为以下几类:

1、硬件原因:电脑的配置太低,导致加载运行速度慢

2、软件原因:FineReport软件本身可能存在一些稳定性的问题,例如升级优化

3、网络问题:网络差或者网络不稳定

4、服务器问题:服务器的响应速度较慢

5、SQL未优化:查询的时候只是满足需求,未考虑到SQL的质量问题

6、数据量太大:对于这种未对数据处理,直接连接业务系统数据库,通过各种运算得到想要的图表。如果数据量较大的话,可能导致加载的速度慢

7、打开报表的数量开多,同时打开多张报表的时候,服务器需要一定的响应时间,所以可能需要一定的等待时间。

想到这些问题之后,又将这些问题重新归类了一下分为两类:

1、客观实际存在的问题:这类问题不可改变或者说是改变有难度

2、可以优化的:SQL的质量

因此,下面主要说一下SQL优化的过程,主要是因为可以立即改善的地方

解决方法:

分析:在做企业报表的时候可能会经常性的遇到需要根据公司、部门、产品等一些列的字段,而这些字段又不在同一个表中,这样要实现所需的查询结果,一般会采用以下两种方法:

第一:多表联合

       在我们实现需求的时候一般首先考虑的问题是实现,然后才能优化。在这种情况下,很难兼顾到SQL的质量问题。当然如果你有丰富的工作经验那就另当别论了,如果你不是的话就要养成良好的习惯。虽然可以实现,但是效率堪忧。

第二:子查询

      有些条件或者不好完全的实现或提取,可以利用子查询来解决。例如部门一般结构为:xxx中心-XXX部门-xxx组,可以利用子查询来实现每个层级数据的提取,然后重新命名为一级单位、二级单位、三级单位等。但是如果每一层都需要写这么多的条件,查询也是比较慢的。

第三:多表联合和子查询混合使用,对于刚开始做的时候,还是应该以实现需求为目标,只有实现了,才能提及优化

方法:

可以在数据库里面将常用的表和字段做个视图,这样可以大大的提高查询速率

原因:可以查询表中的部分数据,不用全表查询了

总结:

1、遇到问题先分析需求,再实现,养成良好的习惯

2、有优化思想,不断提升自己的代码质量,让代码快速美观

在学习的道路上,大家一起加油哈!

发布了114 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Jmayday/article/details/103726305