现有java报表工具的缺陷
2014-01-07 15:32
260 查看
从2007年开始,大量的java报表工具开始涌现,比较杰出的产品,一类是以润乾报表为代表的非线性报表模型,一类是以水晶报表为代表的传统拖拽式报表工具,前段时间我自己还整理了一篇42种子java下的开源报表工具(点这里)。本文无意评论报表工具的功能高下,仅就目前报表工具的缺陷提出一点个人看法。
在我看来,无论上述哪一种报表产品,都存在以下几个缺陷:
1、计算环节导致效率太低
一个完整的报表应用包括取数、计算、展现三个环节,目前已有的报表工具大多是将计算在数据库端完成,或者在报表端完成,如下图所示:
这种方式最大弊端就是数据库或报表端的计算压力太大,以至于报表运算速度慢,等待时间长。
计算在报表端完成还有如下缺点:
展现层和计算层融为一体,处理计算的同时处理展现,导致计算效率低
缺乏完备的计算体系
缺少并行计算机制
2、SQL/存储过程困境
报表工具大多有自己的一套书写语法,都提供完备的SQL支持,但SQL固有的计算缺陷,使得复杂计算时大量代码的书写不可避免,具体表现在四个方面:
a、计算不分步:SQL要求计算在一个语句内写出,必须采用存储过程才能实施分步计算。不分步不仅造成思维困难,而且难以利用中间结果;而存储过程则滞留了大量中间表在db中,占据了宝贵的db资源,客观上也增加了db的扩容压力;
b、集合无序:SQL不直接提供使用位置引用集合成员的机制,与次序和定位相关的计算都需要转换才能实施,比如同期比、环比、排名等等;
c、集合化不彻底:SQL的集合功能简单,只用于表示查询的结果集,而不能作为作为基本数据类型广泛应用;
d、缺乏对象引用:SQL不支持记录引用,数据表间的关联采用同值外键方案,多表联合计算时需要做连接,不仅理解困难而且效率低下。而且随着用户系统的不断完善和数据量的剧增,与跨库有关的多表关联计算需求会进一步增多。
现代高级语言虽然没有SQL的这些缺点,但对于批量结构化数据的计算支持很弱,缺乏业内标准的组件或类库,而且由于语言机制上不支持表达式参数,使得在外部开发相关组件和类库的工作也难以完成,导致应用时仍然很困难。
3、过多的中间表和存储过程导致管理困难,DB负担过重
存储过程是线性管理,过多存储过程导致管理困难,而且挤占数据库服务器的资源,增加数据库存储负担。
在我看来,无论上述哪一种报表产品,都存在以下几个缺陷:
1、计算环节导致效率太低
一个完整的报表应用包括取数、计算、展现三个环节,目前已有的报表工具大多是将计算在数据库端完成,或者在报表端完成,如下图所示:
这种方式最大弊端就是数据库或报表端的计算压力太大,以至于报表运算速度慢,等待时间长。
计算在报表端完成还有如下缺点:
展现层和计算层融为一体,处理计算的同时处理展现,导致计算效率低
缺乏完备的计算体系
缺少并行计算机制
2、SQL/存储过程困境
报表工具大多有自己的一套书写语法,都提供完备的SQL支持,但SQL固有的计算缺陷,使得复杂计算时大量代码的书写不可避免,具体表现在四个方面:
a、计算不分步:SQL要求计算在一个语句内写出,必须采用存储过程才能实施分步计算。不分步不仅造成思维困难,而且难以利用中间结果;而存储过程则滞留了大量中间表在db中,占据了宝贵的db资源,客观上也增加了db的扩容压力;
b、集合无序:SQL不直接提供使用位置引用集合成员的机制,与次序和定位相关的计算都需要转换才能实施,比如同期比、环比、排名等等;
c、集合化不彻底:SQL的集合功能简单,只用于表示查询的结果集,而不能作为作为基本数据类型广泛应用;
d、缺乏对象引用:SQL不支持记录引用,数据表间的关联采用同值外键方案,多表联合计算时需要做连接,不仅理解困难而且效率低下。而且随着用户系统的不断完善和数据量的剧增,与跨库有关的多表关联计算需求会进一步增多。
现代高级语言虽然没有SQL的这些缺点,但对于批量结构化数据的计算支持很弱,缺乏业内标准的组件或类库,而且由于语言机制上不支持表达式参数,使得在外部开发相关组件和类库的工作也难以完成,导致应用时仍然很困难。
3、过多的中间表和存储过程导致管理困难,DB负担过重
存储过程是线性管理,过多存储过程导致管理困难,而且挤占数据库服务器的资源,增加数据库存储负担。
相关文章推荐
- 推荐6款常用的Java开源报表制作工具
- 最流行的Java制作报表的工具
- 优秀的java报表工具:ReportMill
- 常用的Java开源报表制作工具
- java报表工具首次“体验式”免费赠正版
- 走进Java报表工具--Style Report、润乾报表等报表软件(认识篇)
- 6款常用的Java开源报表制作工具
- java报表工具FinereportV7.0改进之图表优化
- 中国报表-报表工具-商业智能-Web报表软件Java与Active X体系结构之比较
- 比较几款主流的JAVA报表工具
- 推荐6款常用的Java开源报表制作工具
- java 报表工具
- JAVA代码缺陷查找工具对比
- 三种Java开源报表工具/组件。
- 用Java报表工具FineReport实现组内序号
- 主流Java报表工具的比较
- Java报表工具finereport7.0优化之填报和表单
- 主流Java报表工具的比较
- 快逸报表-高效易用的JAVA报表工具
- JAVA定时调度工具Timer的缺陷