数据集缓存:
对于大数据量报表,若每次直接从数据库取数,不仅增加数据库服务器的压力,也极大的影响了取数的速度从而降低报表的执行速度,为此 FineReport 提供了数据集缓存功能。
FineReport 可先将其数据集查询的结果缓存下来,对于缓存下来的数据,再次使用到相同数据集时,无需再次连接数据库重新查询数据,直接使用缓存下来的结果,即使用 FineReport 的数据集共享机制,达到资源复用,减少取数时间从而提高了报表的展现速度。
2. 缓存数据有效范围
如果不同模板的某个同名数据集 SQL 查询语句和传入参数相同,则所有模板使用同一个数据集缓存。
如果不同模板的某个同名数据集 SQL 查询语句和传入参数都不同,则会生成多个不同的数据集缓存。
注:cpt 模板和 frm 表单都支持数据集缓存。
3. 数据集缓存方式
数据集缓存分为缓存至内存和缓存至磁盘这两种方式。不同点在于数据集缓存数据的存放位置不同。
3.1 缓存至内存
1)设置方法:
数据集缓存默认缓存至内存,在数据库查询窗口下拉框选择所有记录都保存在内存中,如下图所示:
2)设置后的效果:
当执行数据查询时就会将查询所得数据缓存至内存中,下次执行此数据集数据查询时,会直接从内存缓存中取数。
3)优缺点:
空间资源有限,但效率很高,取数速度快。
4)使用场景:
一般使用频率高,且数据量不算太大