历史版本5 :模板计算结果缓存 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题描述编辑

对报表进行访问时,若模板的数据很大,每次访问都会从服务器端重新读取数据,这样就加大了服务器的压力并且导致访问报表的速度变慢,为此可以设置模板缓存,使访问过模板后再次访问该模板时直接从缓存中读取而不需要从服务器端重新读取以此来减小服务器的压力以及提高报表的访问速度。
1.1 读取模板缓存数据的条件
必须是相同模板如该模板有参数则必须输入的参数值是相同的,即模板的展现结果是相同的。

2. 原理编辑

下面我们以一个例子看下原理
客户端A访问服务器上的报表设计模板,从数据库中读取,生成想要的模板结果文件,缓存到某处,并传回客户端。
而客户B访问服务器此模板时,若返回的结果与客户端A访问放回的结果相同,于是不从数据库中的读取,直接去拿A缓存的那些文件,然后传回客户端。
由此可以看出从缓存取模板结果远快于从数据库中读取数据。

3. 设置方法编辑

可以对单个模板进行缓存设置,可以对所有模板进行缓存设置,下面我们分别看下设置方法。
3.1 单个模板的缓存设置
(1)缓存设置
在访问报表的路径后加&__cache__=true,表示该报表启用缓存,如:http://localhost:8075/WebReport/ReportServer?reportlet=GettingStarted.cpt&__cache__=true
注:只有在访问模板的url后加&__cache__=true,才会生成缓存数据,并且也只有在url后加&__cache__=true时,才会从缓存中读取数据。
(2)缓存有效时间设置
选择菜单模板>模板web属性即可设置,如下图:
如某报表执行需要5秒中,设置的报表缓存有效时间为10秒,用户A第一次访问该报表时,会将报表结果缓存下来,缓存时间为15秒;
从A刚开始访问报表的15秒内,若用户B同样访问了该报表,将直接获取A访问时的计算结果。
222
3.2 所有模板的缓存设置
进入FR系统管理中,选择管理系统>系统管理>缓存,关闭总是重新读取模板就可以启用缓存了。
222

注:是否重新加载报表意味着是否读取缓存,如果不重新加载报表,那么就是读取缓存的同一张模板的信息;如果重新加载报表,就是不读取缓存信息,重新运行报表。