单数据集的使用
在不同的报表情况下,我们可以考虑不同的数据集数量来达到报表性能的最优化,以下我们举一个交叉报表的例子,用一个数据集的效率和多个数据集的效率进行比较。
看如下的报表:
这是一个比较典型的多层交叉报表,其做法有两种:
第一种:
这种做法设计了五个数据集,每一层的表头都来自一个码表,交叉点的数据汇总时根据条件和表头关联
第二种:
这种做法只设计了一个数据集,把码表和事实记录表叉乘起来,在报表中进行分组扩展
我们试比较一下两种做法的优缺点:
第一种做法:
1、 数据集不需要对多表进行叉乘,取数速度快
2、 事实记录数据集可以在sql里先进行分组聚集操作,减少取过来的记录书,加快取数的速度和报表运算速度
3、 表头扩展直接对码表进行select操作,运算速度快
4、 交叉点汇总需要对事实记录表进行检索遍历,查找出和表头关联的记录进行汇总,交叉点的格子数远远大于表头单元格的个数,事实记录表的记录数也一般远远大于码表的记录数,每个交叉点都要对事实记录表遍历检索一次,运算速度非常慢
第二种做法:
1、 数据集需要对码表和事实记录表进行叉乘,取数速度慢,但是一般情况下码表的字段数只有一两个,而且数据库有索引,记录数不是非常大的情况下慢不了很多
2、 在数据集sql里就可以对表头字段先进行分组聚集,这样取过来的记录数大大减少,加快了取数速度和报表的运算速度
3、 表头单元格是对事实记录表进行分组操作,然后再扩展,比第一种做法慢一些,但是由于对数据集只要进行一次的分组操作,因此慢不了太多
4、 交叉点汇总不需要再对事实记录表进行检索遍历了,而是直接对当前组集里的记录进行汇总,因此速度大大提高了
总结:第二种的做法性能优于第一种。
引自:润乾报表知识库
原文链接:单数据集的使用
相关文章:一种实现类似excel把负数显示成红色且去掉负号的方法 ; 导入带公式excel的问题 ;web报表的扩展功能;润乾报表出了新版统计图 ;解决行式填报导入excel发生错位的问题
其他相关内容: 润乾商业智能解决方案 ; 商业智能BI联盟 ; Java报表 ; 报表软件 ;