最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

报表性能优化方案之数据集缓存与共享

[复制链接]
跳转到指定楼层
楼主
发表于 2015-9-23 10:28:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1. 问题描述
对于大数据量报表,若每次直接从数据库中查询数据,不仅增加数据库服务器的压力,也极大的影响了取数的速度从而降低了报表的执行速度,为此FineReport提供了数据集缓存与共享功能。
FineReport可先将其数据集查询的结果缓存下来,对于缓存下来的数据,再次使用到相同数据集时,无需再次连接数据库重新查询数据,直接使用缓存下来的结果,即使用FineReport的数据集共享机制,达到资源复用,减少取数时间从而提高了报表的展现速度。
2. 数据集缓存
缓存分为缓存至内存和缓存至磁盘。
2.1 缓存至内存
设置方法:默认的就是使用内存缓存即所有数据都保存在内存中,在数据库查询窗口可以看到,如下图:
设置后的效果:当执行数据集时就会在将此记过缓存至内存中,下次在执行此数据集时,会直接从内存缓存中取数。
优缺点:空间资源有限,但效率很高,取数速度快。
什么情况使用:一般使用率高,且数据量不算太大的报表,可直接使用内存缓存。
2.2 缓存至磁盘
设置方法:点击下拉框选择缓存至磁盘当记录大于,并设置行数,如下:
缓存至磁盘,即将数据缓存到服务器的磁盘中,默认是在C:\Documents and Settings\Administrator\.FineReport8.0\cache(windows操作系统)下。
注:如启用了磁盘缓存,发现系统目录下没有cache文件夹,不要感到惊讶,虽然激活了磁盘缓存,但不是马上开始把数据写到磁盘中,而是会考虑系统的实际运行情况然后再进行处理。
设置后的效果:记录数默认大于0行:表示从第0条数据开始,使用磁盘缓存。即只采用磁盘缓存,取出的数据是全部放在磁盘中。
记录数大于如1000行:表示取得的数据前1000条是放入内存中,剩余部分缓存至磁盘,当用到1000条以外的数据时,就会从磁盘中读取数据。
优缺点:空间资源又大又便宜,几乎没有限制;但效率低,取数速度往往很慢。
什么情况使用:若是数据量很大的报表,如:几十万条记录,可使用缓存至磁盘,设置恰当的行数,避免全存在内存中,导致服务器OutOfMemory内存溢出。
如行式引擎报表,可以将使用率高的前N页数据缓存在内存,剩余记录缓存在磁盘中。
注:既然两者都有优缺点,因此需要合理分配内存和磁盘,把那些使用频率最高的数据尽量放在内存中,从而提高在内存中的命中率。
3. 数据集共享
设置了数据集缓存后,只对当前数据集再查询时才能读取缓存中的数据,若多个模板包含有相同的数据集(定义的SQL查询语句相同,传入的参数值相同,才算相同的数据集),便可以启用数据集共享,使得他们共享同一个缓存结果,从而节省数据库资源,并且提高取数和报表的展现速度。
3.1 设置方法
在定义数据连接的地方勾选是否共享数据集,如下图所示:
注:数据集缓存是对当前数据集有效,而共享数据集是对不同模板的相同数据集有效,并且需要将需要共享的数据集都勾选上。
3.2 数据集共享属性设置
我们可以对缓存下的结果进行一些设置。
进入FR平台中,选择管理系统>系统管理>缓存,可以看到数据集共享属性如下图所示:
最大活动对象:指在缓存容器中最大放置的缓存对象个数,如果活动对象数超过此数目,则服务器会根据下面的缓存策略来选择哪些对象留下,哪些被去除
最大生存时间:指的是缓存对象在容器中存活的最大时间,无论是否活动,一旦超过此时间,此缓存对象就失效,将会被移除
最大空闲时间:指的是缓存对象在容器中停留不被使用不能超过的时间,也就是空闲的时间,如果空闲的时间超过这个时间,此对象就会被移除。
注:管理系统>系统管理>缓存,下方的模板缓存属性设置,是对模板计算的结果进行缓存设置,而上面所说的在数据集处的缓存设置则是对数据进行缓存设置,一个是对结果来说,一个是对于数据来说,要区别开来,这是两个不同的概念。




楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-28 13:08

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表