`
datamachine
  • 浏览: 156826 次
社区版块
存档分类
最新评论

结果集复用来提升报表性能

阅读更多

         报表项目中,如果一个报表有多个sql数据集,可能会出现其中两个或者几个数据集很相似的情况。如果相似数据集的结果可以复用,就能有效的提高性能。但是,sql数据集的结果是没有办法复用的。例如下面这个“销售排名、分布报表”(db2数据库):



 

  如果采用sql结果集,需要两个数据集:

Ds1

SELECT * from (select e.eid 雇员编号,max(e.name) 姓名,max(e.state) 州,sum(amount) 订单总价 from sales s,employee e where e.eid=s.sellerid group by e.eid order by 订单总价 desc) fetch first 10 rows only

 

Ds2

select 州,count(雇员编号) 前十名个数 from (select * from (select e.eid 雇员编号,max(e.name) 姓名,max(e.state) 州,sum(amount) 订单总价 from sales s,employee e where e.eid=s.sellerid group by e.eid order by 订单总价 desc) fetch first 10 rows only) group by 州 order by 前十名个数

 

         可以看出,ds1ds2的主体很相似,只是一个是取明细,一个是取州汇总。但是,因为sql数据集不能共享结果,所以ds2无法复用ds1的结果。报表设计如下:




 

 

         这种情况可以采用润乾集算报表,在集算脚本中分步骤计算,可以复用结果集提高性能。具体实现如下。

         首先,在集算器中编写集算脚本(sales.dfx)。



 

        A1:连接预先配置好的db2数据库。

        A2:执行sql,取得销售排名的明细数据。

        A3:关闭数据库连接。

        A4:在A2的基础上,复用A2的结果进行简单的分组和排序即可完成第二个数据集。

        A5:返回两个结果集。

相比较而言,sql数据集的ds2无法利用ds1的结果,所以要重新算按照eid分组汇总、取前十名。由于销售数据较多,因此性能较差。而集算数据集方案的A4,仅仅是对十条记录做分组和排序,速度很快。

 

         第二,在集算报表设计器中定义集算数据集调用sales.dfx



 

         直接返回两个数据集ds1ds2

 

         第三,在集算报表设计其中设计报表如下:



 

 

 

  • 大小: 48 KB
  • 大小: 38.7 KB
  • 大小: 56.7 KB
  • 大小: 26.5 KB
  • 大小: 38.9 KB
0
1
分享到:
评论

相关推荐

    Elixir Report --提升专业质量与效率的报表控件

    服务器端并发显示引擎用来获得高性能的报表显示。显示过程作为背后服务器来运行,生成的报表可以输出到客户端或在服务器中缓存。高扩展性的引擎支持并发处理,通过调用多个显示引擎并发的生成报表。 ·数据源管理...

    EventLog_Analyzer.zip

     通过定义日志筛选规则和策略,帮助IT管理员从海量日志数据中精确查找关键有用的事件数据,准确定位网络故障并提前识别安全威胁,从而降低系统宕机时间、提升网络性能、保障企业网络安全。 一、日志管理 保障网络...

    SQL Server 2008商业智能完美解决方案 3/3

    10.4 筛选MDX结果集 226 10.5 计算成员和命名集合 228 10.6 TopCount函数 230 10.7 Rank函数和组合 232 10.8 Head和Tail函数 235 10.9 MDX的层次结构函数 236 10.10 日期函数 239 10.10.1 结合使用聚合和日期函数 ...

    SQL Server 2008商业智能完美解决方案 2/3

    10.4 筛选MDX结果集 226 10.5 计算成员和命名集合 228 10.6 TopCount函数 230 10.7 Rank函数和组合 232 10.8 Head和Tail函数 235 10.9 MDX的层次结构函数 236 10.10 日期函数 239 10.10.1 结合使用聚合和日期函数 ...

    SQL Server 2008商业智能完美解决方案 1/3

    10.4 筛选MDX结果集 226 10.5 计算成员和命名集合 228 10.6 TopCount函数 230 10.7 Rank函数和组合 232 10.8 Head和Tail函数 235 10.9 MDX的层次结构函数 236 10.10 日期函数 239 10.10.1 结合使用聚合和日期函数 ...

    SQL Server 2008 商业智能完美解决方案(3)

    10.4 筛选MDX结果集 226 10.5 计算成员和命名集合 228 10.6 TopCount函数 230 10.7 Rank函数和组合 232 10.8 Head和Tail函数 235 10.9 MDX的层次结构函数 236 10.10 日期函数 239 10.10.1 结合使用聚合和日期...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并在工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家...

    PC电源故障分析和维修手册免费下载.pdf

    了解,掌握这些基本元器件的工作性能和一些简单的电路工作原理, 才可以对 PC 电源着手进行分析检修和维护,但我们的维护成果与报表,则将会被反馈给产品的设计,开发,制造者,达到产品品质的日益提升。

    java开源包1

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包11

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包2

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包3

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包6

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包5

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包10

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包4

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包8

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包7

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包9

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

Global site tag (gtag.js) - Google Analytics