报表性能优化方案之善用参数注入
1. 问题描述
对于多数据集关联报表,当数据很大时报表的展现速度就会很慢,或通过写sql语句又很复杂。为此FineReport提供一种,既可加快报表的展现速度,又不用编写复杂的sql语句的方案。即使用动态参数注入功能。
2. 原理
动态参数注入,是通过注入的值对数据库中的数据进行操作的,只是取对应的数据,所以会提高报表的性能。
3. 示例
- 新建模板
展现多个关联数据表的数据
SQL语句,ds1:SELECT * FROM [订单]
SQL语句,ds2:SELECT * FROM 订单明细
- 报表样式
传统做法:先定义多个数据集,然后在报表中设置过滤条件,或使用连接将多个数据表定义成一个sql,但这两种方案会产生的一系列问题(具体下面有介绍)。而使用动态参数注入的功能可解决大数量报表展现的速度,下面对比看下这三种做法。
3.1 设置过滤
此方法是定义两个数据集查询出所有数据,然后在报表中设置过滤条件。
分页预览query_like.cpt,从日志中可看出,是将第二个数据集中的数据全部取出了,如下所示:
注:对于数据量大的报表,若将数据全部取出会降低报表的性能,因此会降低报表的展现速度。
3.2 定义sql
若是采用将两个数据集定义成一个数据集,则SQL语句为:select a.订单ID,订购日期,到货日期,发货日期,产品ID,单价,数量,进价,折扣 from 订单 a,订单明细 b where a.订单ID=b.订单ID
注:当数据集很多时, 这样定义sql很麻烦,看了也觉得很复杂。
3.3 使用动态参数注入
- 修改sql语句
将上述模板中,数据集ds2的sql语句,修改成:SELECT * FROM [订单明细] where 订单ID =${orderid},并将参数orderid设置个默认值为订单ID中的一个值,如:10248。
- 参数注入设置
双击原进行过滤的E2单元格,在弹出数据列对话框中,点击动态参数注入按钮,弹出动态参数注入对话框,然后点击插入:名字和值分别为数据集ds2的参数:orderid和数据集ds1对应数据列所在的单元格:A2,且同时删除过滤条件。
点击设计器预览是,日志中可看出每执行一行就只是取出的对应订单ID的那条数据,如下图所示:
注:动态参数注入功能适用于大数据量报表,能够明显的体现出速度优势,而上文中的模板只是介绍其方法的。
转载于:https://www.cnblogs.com/laoA188/p/4828108.html
报表性能优化方案之善用参数注入相关推荐
- 报表性能优化方案之多数据集实现层式报表
1. 问题描述 若报表使用的数据量是上百万条的话,觉得报表展现的速度慢,可以使用层式报表来提高报表展现速度.但由层式报表章节可以得知,层式报表必须是单数据集,若是多数据集的模板且数据量又很大,想要提高 ...
- 报表性能优化方案之报表服务器优化基础讲解
内存 JVM堆栈内存是决定应用服务器性能的关键指标,一般服务器默认的内存配置都比较小,在较大型的应用项目中,这点内存是不够的,因此需要进行查看与修改Web服务器内存大小,接下来就介绍服务器内存查看的方 ...
- 报表性能优化方案之多种报表服务器内存修改方法
服务器内存修改 各应用服务器的内存配置方法不尽相同,如下列出了常用服务器的JVM参数(-Xms,-Xmx)配置方法. JVM参数定义: - Xms: 初始化内存大小 - Xmx: 可以使用的最大内存 ...
- 报表性能优化方案之单数据集分页SQL实现层式报表
1.概述 我们知道,行式引擎按页取数只适用于Oracle,mysql,hsql和sqlserver2008及以上数据库,其他数据库,如access,sqlserver2005,sqlite等必须编写分 ...
- oracle做分页式报表,报表性能优化方案之单数据集分页SQL实现层式报表
1.概述 我们知道,行式引擎按页取数只适用于Oracle,mysql,hsql和sqlserver2008及以上数据库,其他数据库,如access,sqlserver2005,sqlite等必须编写分 ...
- react性能优化方案_React灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...
react性能优化方案 在我以前的文章中,我研究了一个虚拟的交易引擎,并将基于Java的阻止解决方案与基于Node.js的非阻止解决方案进行了比较. 在文章的结尾,我写道: 我怀疑随着Node.js的 ...
- 微信小程序性能优化方案
文章目录 微信小程序性能优化方案 提高加载性能 小程序代码包准备(下载代码包) 开发者代码注入 页面渲染优化 提升渲染性能 setData工作原理 优化方法 微信小程序性能优化方案 微信小程序如果想要 ...
- Mysql性能优化方案
2019独角兽企业重金招聘Python工程师标准>>> 内容简介:这是一篇关于mysql 性能优化的文章.网上有不少mysql 性能优化方案,不过,mysql的优化同sql serv ...
- kvm性能优化方案---cpu/内存/磁盘/网络
kvm性能优化方案 kvm性能优化,主要集中在cpu.内存.磁盘.网络,4个方面,当然对于这里面的优化,也是要分场景的,不同的场景其优化方向也是不同的,下面具体聊聊这4个方面的优化细节. cpu 在介 ...
最新文章
- 在列表显示某个内容,但数据表没有这个字段
- 2021第六届数维杯大学生数学建模竞赛赛题_B 中小城市地铁运营与建设优化设计
- 【数据结构练习习题】java实现版(一)
- Android内存优化2—使用软引用和弱引用
- XML Schema 基本结构
- 获取本地沙盒文件的MIMEType
- zabbix yum安装
- 史上最全jdk版本新特性大全
- Qt编写echart仪表盘JS交互程序支持webkit和webengine(开源)
- python抽取指定url页面的title_Python使用scrapy爬虫,爬取今日头条首页推荐新闻
- 银行账户系统需求分析实例
- 两台计算机怎么网络连接,两台电脑怎么连接局域网,详细教您两台电脑怎么连接局域网...
- INTO CORRESPONDING FIELDS OF、去掉前导零,增加前导0。不显示物料号的前导零
- 有序线性表查找平均长度 ASL 公式理解,Hash表的“查找成功的ASL”和“查找不成功的ASL”
- EtherCAT运动控制卡的电子凸轮追剪飞剪等应用(一)
- Integer 十六进制
- IP-Guard十六个模块功能详解
- CSS transform属性的简单应用——双开门动画效果
- [OHIF-Viewers]医疗数字阅片-医学影像-使用 PropTypes 进行类型检查
- 实验3-1 求一元二次方程的根 (20分)
热门文章
- 笔记本电脑性价比排行2019_笔记本电脑性价比排行2020榜单介绍
- 计算机组成原理中计算机主要包括哪几部分,计算机组成原理本科生期末试卷(五)部分答案详解...
- matlab fft2 opencv,基于OPENCV的FFT2变换
- 5双机配置_CentOS 7 高可用双机热备实现
- c语言三元运算符_了解C / C ++中的三元运算符
- rds mysql_Amazon RDS上MySQL
- ios uiview动画_iOS UIView动画
- jquery显示隐藏切换_jQuery显示,隐藏,切换
- Python获取文件路径:os.listdir()和os.walk()
- 主流Java微服务框架有哪些?-开课吧