报表性能优化方案之数据集缓存与共享
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平台中,选择管理系统>系统管理>缓存,可以看到数据集共享属性如下图所示:
最大活动对象:指在缓存容器中最大放置的缓存对象个数,如果活动对象数超过此数目,则服务器会根据下面的缓存策略来选择哪些对象留下,哪些被去除
最大生存时间:指的是缓存对象在容器中存活的最大时间,无论是否活动,一旦超过此时间,此缓存对象就失效,将会被移除
最大空闲时间:指的是缓存对象在容器中停留不被使用不能超过的时间,也就是空闲的时间,如果空闲的时间超过这个时间,此对象就会被移除。
注:管理系统>系统管理>缓存,下方的模板缓存属性设置,是对模板计算的结果进行缓存设置,而上面所说的在数据集处的缓存设置则是对数据进行缓存设置,一个是对结果来说,一个是对于数据来说,要区别开来,这是两个不同的概念。
相关推荐
共享数据集缓存是指将多个报表共享同一个数据集,以便于减少数据库查询的次数和时间。 取数缓存的原理是将报表执行过程中所需的数据缓存在服务器的内存或磁盘中,以便于下一次执行时可以快速获取数据。例如,在报表...
5. **常见性能问题的诊断与优化**:识别并解决数据库中的典型性能瓶颈。 6. **性能监控**:学会使用Enterprise Manager中的性能相关页面监控数据库。 #### 三、课程内容详解 1. **性能优化概览**: - 定义性能...
7. **性能优化**:BIEE提供了多种性能优化策略,如缓存、物化视图、查询重写等,以提高报表加载速度和系统整体性能。 通过“普通报表.swf”这个SWF格式的视频,观众能够直观地看到上述步骤的实际操作过程,有助于...
这是一种通过将数据集转换为XML字符串,然后通过POST请求传输至另一页面的方式。 **应用场景与优缺点:** - **优点:** - 简洁:无需复杂的序列化过程。 - 易于集成:XML是标准的数据交换格式。 - **缺点:** - ...
为了提升报表性能,可以使用缓存策略、数据分区、预计算以及优化查询等方式。同时,监控报表服务器性能,及时调整硬件资源,确保服务的稳定运行。 11. **报表生命周期管理** 除了报表的创建和执行,还包括版本...
通过共享数据集,多个报表可以共享相同的数据源和查询,提高了效率。 四、发布与分发 1. 报表服务器:报表服务的核心是报表服务器,它负责存储、处理和分发报表。服务器支持Web服务接口,使得报表可以通过Web...
例如,你可能需要在代码中填充数据集,然后将数据集赋值给报表的数据源。 5. **局部和共享数据源**:在RDLC中,数据源可以是局部的,也可以是共享的。局部数据源只适用于当前报表,而共享数据源可以在多个报表之间...
10. **性能优化**: 对于大型数据集,SSRS支持缓存、数据分区和并行处理等技术,以提高报表生成速度和响应时间。 综上所述,SQL Server报表模板是一个功能强大的工具,能够帮助用户从不同角度理解和利用数据库中的...
3. **数据集与计算**:允许用户定义数据集,进行数据过滤、排序、分组等操作,同时支持自定义计算公式,满足复杂的业务需求。 4. **数据钻取与交互**:支持数据的深度挖掘,用户可以通过点击或选择实现数据的下钻、...
此外,它还可以通过数据集和共享数据源来组织和重用数据。 3. **报表服务器**:报表服务器是SSRS的核心组件,负责存储、处理和管理报表。报表服务器支持Web服务接口,允许通过HTTP进行访问,方便集成到Web应用程序...
10. **性能优化**:理解并优化报表执行计划、使用缓存和数据分区策略,可以显著提升大规模报表的性能。 资源包中的PPT可能包含详细的步骤演示,视频可能涵盖实践操作过程,而文档可能提供更深入的技术细节和解决...
共享数据集是预定义的数据集,可以在多个报表中重用,有助于提高效率和一致性。 5. **报表模型**:报表模型是用于自助式报表设计的一种工具,它允许非开发人员通过拖放方式构建报表,而无需编写SQL查询。 6. **...
润乾报表工具在性能优化上也下了很大功夫。它采用了高效的缓存策略和数据处理机制,即使面对海量数据也能保持流畅的运行速度。同时,工具支持分布式部署,通过集群配置,可以进一步提升报表处理能力和并发访问能力,...
**FineReport**是一款集数据展示(报表)和数据录入(表单)功能于一体的报表工具软件,主要面向软件开发者。它能显著提升软件开发过程中的效率,并增强最终产品的稳定性。此外,它还能在软件交付后大幅降低维护工作...
**四、数据源与数据集** 报表服务支持多种数据源类型,包括SQL Server、Oracle、ODBC、OLE DB等。在CRM中,数据通常来自CRM数据库,报表服务通过创建数据集来组织和预处理数据,以便在报表中使用。数据集可以是静态...
2. 数据源:在报表设计阶段,将数据源与报表字段绑定,可以是SQL查询、存储过程或者自定义数据集。 四、报表的运行与展示 1. 在C#代码中,创建报表对象,设置必要的参数,然后通过ReportDocument类加载报表文件。 ...
用户可以轻松地从这些数据源中提取信息,创建报表,并利用数据集、参数和过滤器等功能优化报表内容。 #### 安全性和管理 报表服务内置了强大的安全机制,确保报表的访问和管理符合企业安全策略。管理员可以利用...
3. **使用共享数据集**:共享数据集是预先计算好的查询结果,可以在多个报表中复用,提高效率并保持一致性。 4. **地图报表**:结合地理数据,SSRS可以生成交互式地图报表,显示地理位置信息。 5. **报表集**:...