当前位置:文档之家› 报表性能优化

报表性能优化

报表性能优化
报表性能优化

基于B/S架构报表性能提升

报表是一件用来传达信息的艺术品,但不同于常规的艺术品,信息可以随着驱动它的数据而改变,其信息转换是报表的根本。转换过程非常重要,现阶段互联网技术的发展推动了B/S的迅速普及,B/S报表是基于分组的报表,为快速制作报表提供了方便的工具,但同时也面对着用户不断提高的要求的挑战,尤其是对于复杂的中国式报表更是如此,大量的报表数据往往性能很低需要借助大量复杂的程序编码实现,在浏览器中进行处理大数据量报表的浏览、打印、导出及交互、通过底层编程和HTML描述来实现非常繁琐和低效,报表展现性能相应较差,现阶段可进行对B/S升级优化,采用报表工具组件嵌入浏览器进行大幅提升数据处理以及数据展现性能。

一、建立报表查看器和报表服务器二部分组件:

1.报表服务负责数据进行处理

报表服务是以类库形式提供的业务逻辑层组件,它负责操作数据库以获取相关报表数据,并且自定义进行报表数据自动生成,储存于服务器端。报表服务器对外提供接口,业务逻辑层的应用组建通过该接口得到报表数据。

2.报表查看器负责数据展现,功能实现

报表查看器是以控件的形式提供的表现层组件,嵌入到浏览器中运行并向外提供接口。应用通过该接口向查看器中设置所要显示的报表数据及格式信息,查看器以指定格式在界面上显示,进行浏览、打印、导出及交互等操作。

二、提高海量数据展现技术实现

1.分批处理

海量数据处理难因为数据量大,那么解决海量数据处理难的问题其中一个是减少数据量。可对海量数据进行分批处理,然后处理后的数据再进行合并并操作,这样逐个击破,有利于小数据量的处理,不至于面对大数据量带来的问题,不过这种方法也要因势进行,如果不允许拆分数据,还需要另想方法。不过一般的数据按天、按月、按年等存储的,都可以采用先分后合的方法,对数据进行分开处理。

2.建立缓存机制

当数据量增加时,一般的处理工具都要考虑到缓存问题。缓存大小设置的好差关系到数据处理的成败。

主机与存储性能优化

监控硬件资源使用状况,分析 CPU 、I/O 、内存是否存在瓶颈,结合应用负载,确认现有硬件资源是否能够满足业务运行需要,对于影响性能的硬件资源进行合理分配,如均衡存储磁盘 I/O 负载,如有必要可对CPU 与内存进行扩充。

操作系统性能优化

通过系统工具收集系统数据,分析操作系统相关配置与主要参数设置是否合理,对于不当系统设置进行合理调整。

数据库性能优化

数据库响应缓慢通常是系统性能低下的最直接反应,通过对于 DB2 或者ORACLE 数据库性能监控可以发掘来自于数据库自身与数据库之外的性能问题,对数据库内存参数调整,以更有效地使用内存;对数据库其它配置参数进行针对性调整,减少各种等待事件;合理分配数据文件物理存储,以减少磁盘 I/O 竞争;对数据库表与索引进行有效地重组,以获得更优的查询效率;如有需要可将数据库由单点模式迁移至多节点集群为应用提供并行处理,等多方面全面调整使数据库反应时间在整个系统反应时间的比例降至最低。

SAP应用优化

实践表明, 大部分SAP系统性能问题主要来自于低效的应用,不合理的应用程序ABAP 语句是引起数据库反应缓慢的主要原因,通过对于数据库的详细监控,可以捕获引起特定性能较差的应用对应的ABAP 语句,对其进行具有针对性的分析与重新书写,以显著提高特定应用的响应时间。

综合性能优化

性能优化是一个系统的工程,系统中的各个环节彼此关联影响,对于以上各个环节的优化应考虑对于系统中其它环节的负面影响,综合平衡各方面性能;此外,优化又是一个复杂反复的过程,需要经过递归分析、优化、测试,以求获得最优系统。

通常情况下,我们首先需要对sql进行优化以保证数据集中不包含不必要的数据,比如上一节"SQL优化数据集"所讲到的尽量不要使用"select * from"和"尽量在sql里面过滤"。通过sql优化,我们往往能够得到最精简的数据集,满足大部分报表的需求。

但是,对于一些大数据量的报表来说,仅仅优化SQL是不足够的,对于这种报表,因为他所要展现的数据量本身就很大,所以即使sql精简优化后,仍然有很多条记录,有时候如果不缓存这些数据,那么频繁的数据库连接和sql 查询是数据库所承受不了的,并且取数速度的降低会极大的降低报表执行速度。因此,FineReport提供可选择的方案让你来缓存这些数据,缓存分为内存缓存,和磁盘缓存。顾名思义,内存缓存就是把数据缓存到RAM中,从而再次取数时就不需要从数据库取,而是直接从内存里面拿。内存缓存是效率

很高,取数速度快,但是重要的缺点是占用内存空间资源,如果把大量的记录,比如几十万条都缓存到内存中去,就有可能造成OutOfMemory抛错。因此在数据量超过内存缓存限制的情况下,我们采用空间资源更大更便宜的硬盘缓存,但是硬盘缓存会造成取数效率下降,增长时间。因此,在大数据量下,合理平衡分配内存缓存和磁盘缓存往往对性能有着至关重要的影响。一个重要的原则是,内存缓存空间资源有限,但效率很快;硬盘缓存空间资源几乎没有限制,但效率底,往往很慢。

相关主题
文本预览
相关文档 最新文档