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

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

阅读更多

         报表项目中,如果一个报表有多个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
分享到:
评论

相关推荐

    帆软报表插件,显示sql数据集的查询时间。

    总的来说,帆软报表插件显示SQL数据集的查询时间是提升数据库管理效率和系统性能的关键工具。通过监控和分析这些数据,用户不仅可以优化数据库操作,还可以对系统进行精细化管理和持续改进。对于开发团队和数据库...

    单数据集分页SQL实现层式报表

    这样用户在浏览数据时,可以按页查看,而不是一次性加载所有数据,这对于提升报表的性能非常有帮助。 2. FineReport报表开发工具中的行式引擎 FineReport是一种专业的报表开发工具,它支持行式引擎按页取数。行式...

    RDLC子报表实例

    合理的数据分页、缓存策略以及优化数据查询都可以提升报表的加载速度。 10. **版本兼容性**:确保你的RDLC报表与目标.NET Framework版本兼容,因为不同的版本可能支持不同的报表功能。 总之,"RDLC子报表实例"是一...

    一些华丽的报表程序,图形报表,3D

    6. **图表组件**:JFreeChart提供了一些组件,如Legend(图例)、Title(标题)、Subtitle(副标题)等,学习如何添加和定制这些元素能提升报表的专业性。 7. **输出和渲染**:你可以将图表导出为各种格式,如JPEG...

    java水晶报表demo

    接着,可以通过设置参数,执行查询,并将结果集绑定到报表上。最后,你可以选择在控制台输出,或者使用Viewer控件在GUI中显示报表。 7. **集成示例** "test"文件可能是演示如何在Java项目中调用和展示水晶报表的一...

    报表测试项目

    研究报告可能涵盖了报表性能、用户体验、数据准确性和安全性等方面,旨在提升报表的整体质量和效率。这需要对报表设计原则、数据处理算法以及用户需求有深入理解。 至于“cs”这个文件名,虽然没有具体的扩展名,但...

    JAVA报表解决方案源码

    源码可能会演示如何使用Java集合、数据库结果集或者XML数据源进行数据绑定。 6. **报表设计**:报表设计通常涉及XML或特定的报表设计工具,如iReport(JasperReports的配套设计工具)。源码中可能包含了设计报表...

    web页面报表js

    网页报表是一种重要的数据可视化工具,它能够将复杂的数据集转换为易于理解的图表、表格和其他图形,便于用户分析和决策。在"web页面报表js"这个主题中,我们主要探讨的是如何利用JavaScript技术来实现动态、交互式...

    pb动态报表

    8. **性能优化**:在处理大量数据时,需要考虑性能优化策略,如使用存储过程、预编译SQL、分页加载等方法来提升报表的加载速度和响应能力。 综上所述,PB动态报表涉及的技术和概念广泛,不仅包括数据库访问、SQL...

    JAVA报表程序源码

    2. **报表引擎**:报表引擎是Java报表程序的核心,它负责解析报表设计,执行查询,格式化数据,并将结果呈现为可视化的报表。常见的Java报表引擎有JasperReports、BIRT(Business Intelligence and Reporting Tools...

    JFreeChart水晶报表制作

    虽然JFreeChart和水晶报表在功能上有所不同,但它们都可以用来展示数据和分析结果。 在JFreeChart水晶报表制作中,首先我们需要了解JFreeChart的基本用法。JFreeChart的核心是`ChartFactory`类,它提供了创建各种...

    c# 报表服务

    为了进一步提升报表服务的功能,开发者还可以利用以下技术: - **数据驱动订阅**:允许报表根据数据变化自动发送,无需用户手动触发。 - **自定义扩展**:通过编写代码扩展SSRS的功能,例如自定义数据处理器或渲染...

    网页web报表,javascript报表,简单好看

    JavaScript报表库如Highcharts, Chart.js, D3.js等,都提供了一系列工具和方法,使得开发者可以通过简单的API调用来生成各种类型的图表,包括柱状图、折线图、饼图、散点图、热力图等。这些图表能够根据数据的变化...

    报表数据设计

    通过合理的查询优化、数据缓存和分页技术,可以提升报表性能。 10. 安全性:保护数据安全是设计报表时不可忽视的一环,包括访问控制、数据加密和防止SQL注入等措施。 教学视频作为学习资源,通常会涵盖以上各个...

    水晶报表制作 PPT 完整的步骤

    通过学习这份PPT,开发者不仅能够掌握水晶报表的基本使用方法,还能了解到如何在实际项目中优化报表性能,提升用户体验。对于需要处理大量数据和展示复杂信息的应用,水晶报表是一个非常实用的工具。

    组态王报表系统的制作

    同时,也可以参考官方文档或在线教程,了解更多高级特性,比如自定义函数、报表触发器等,进一步提升报表系统的功能和性能。 总的来说,掌握组态王报表系统的制作是工业自动化领域的一项重要技能,它可以帮助我们...

    U9 自定义报表开发

    ### U9自定义报表开发详解 #### 一、概述 U9自定义报表开发是针对...此外,利用U9系统提供的报表组件,还可以进一步提升报表的可视化效果和用户体验。希望本文能够帮助开发者更好地掌握U9自定义报表开发的技术要点。

    C#打印报表

    2. 数据绑定:通过C#代码将业务数据与报表模板连接,可以是数据库查询结果、静态数据集或是其他数据源。FastReport提供了丰富的API来进行数据绑定和数据操作。 3. 报表预览:在打印之前,通常会提供一个预览功能,...

    报表打印模块

    在报表打印模块中,JSP可以用来处理用户的请求,从数据源获取数据,进行必要的数据处理,然后将结果显示到页面上。 1. JSP基本语法:通过, 和! %>标签编写Java代码,实现业务逻辑。 2. JSP标签库:利用JSTL(Java...

    超简单超炫的J2EE报表制作

    在IT行业中,报表系统是企业信息化管理的重要组成部分,它能够帮助管理层快速理解业务状况,做出决策。...这些技术的结合使得该项目能够提供一个既美观又易用的报表系统,帮助企业提升数据分析效率。

Global site tag (gtag.js) - Google Analytics