session、缓存、并发,模板结果缓存与共享,报表缓存,提高报表访问效率,服务器性能优化,
1. 问题描述
对报表进行访问时,若模板的数据很大,每次访问都会从服务器端重新读取数据,这样就加大了服务器的压力并且导致访问报表的速度变慢,为此可以设置模板缓存,使访问过模板后再次访问该模板时直接从缓存中读取而不需要从服务器端重新读取以此来减小服务器的压力以及提高报表的访问速度。
1.1 读取模板缓存数据的条件
必须是相同模板如该模板有参数则必须输入的参数值是相同的,即模板的展现结果是相同的。
2. 原理
下面我们以一个例子看下原理
客户端A访问服务器上的报表设计模板,从数据库中读取,生成想要的模板结果文件,缓存到某处,并传回客户端。
而客户B访问服务器此模板时,若返回的结果与客户端A访问放回的结果相同,于是不从数据库中的读取,直接去拿A缓存的那些文件,然后传回客户端。
由此可以看出从缓存去模板结果远快于从数据库中读取数据。
3. 设置方法
可以对单个模板进行缓存设置,可以对所有模板进行缓存设置,下面我们分别看下设置方法。
3.1 单个模板的缓存设置
在访问报表的路径后加&__cache__=true,表示该报表启用缓存,如:http://localhost:8075/WebReport/ReportServer?reportlet=GettingStarted.cpt&__cache__=true。
注:只有在访问模板的url后加__cache__=true,才会生成缓存数据,并且也只有在url后加__cache__=true时,才会从缓存中读取数据。
设置了缓存有效时间后,超过设置的时间后缓存就被清空了,就会重新生成缓存数据了。
选择菜单报表>报表web属性即可设置,如下图:
注:若报表缓存有效时间是0,代表一直启用模板缓存。
3.2 所有模板的缓存设置
进入FR管理平台中,选择服务器配置>设置>缓存,勾去重新读取模板就可以启用缓存了。
注:是否重新加载报表意味着是否读取缓存,如果不重新加载报表,那么就是读取缓存的同一张模板的信息;如果重新加载报表,就是不读取缓存信息,重新运行报表。
返回顶部