搜索文章

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 报表技术分享 > Autobig标签的使用说明

Autobig标签的使用说明

Autobig标签的使用说明

快逸为了应对海量数据的清单式列表在读取、展现导出过程中可能会出现速度过慢、内存溢出、系统死机等问题。满足大数据量的报表展示需求,为客户提供了autobig分页标签发布报表。

Autobig实现原理:

把报表根据每页展现行数,以及从数据库里获取的最大行数,分成n页,然后把所有页的报表定义组成一个报表组,利用报表组实现了逐页计算逐页输出功能。

使用autobig标签需要配置reportConfig.xml文件中alwaysReloadDefineno,启用缓存。此项设置的目的是使得设置的缓存页数cachePageNum生效。实现展现、翻页、打印、导出都是逐页计算逐页输出的

Autobig标签是通过报表组形式运算展示的,报表组由子报表组成。

当页数太多时,报表组的定义本身会导致内存溢出,因为生成的报表组定义是存在内存里的。比如我们做过试验,5000万条记录,每页20条,则在1g内存情况下内存溢出。

因此,快逸添加了countPerExportPage=”100000″ 标签,通过增大每页展现的数据量,减少子表页数。

Autobig标签不能应用于以下几种情况,

分组报表。

报表和数据集表达式包含sum(),count(),等统计型函数。

由于autobig标签是通过标签:

dbType=”unknown”

dsName=”ds1″

totalCountExp=”"

pageCount=”10″

cachePageNum=”5″

做数据集的数据量统计划分,所以不能对数据集数据做分组,汇总等统计。

关于oracle数据库的特殊性需求,

当应用于oracle数据库时,执行对报表数据集数量统计时

select * from ( select t1.*, rownum rno from ( SELECT ID_BAY_BAYD,
FROM BAY_DGRA
WHERE rownum <= ? ) t1 ) where rno >= ?
[2012-09-17 17:20:46] quieeReportLogger : [DEBUG] – arg0: 5000
[2012-09-17 17:20:46] quieeReportLogger : [DEBUG] – arg1: 1
[2012-09-17 17:23:01] quieeReportLogger : [INFO ] -
取数结束,开始运算
[2012-09-17 17:23:02] quieeReportLogger : [INFO ] -
计算结束:

后台一直停滞在这一步。这是oracle数据库计算的限制。

totalCountExp=”" 直接赋一个值就可以,展现速度正常

本文标签: