单一报表运算的性能与优化
单一报表的性能,是整体性能的基础。一方面,有很多时候只是某一张特定报表速度慢,应针对性进行优化;另一方面,在处理并发性能问题时,也要先确定单一报表的性能是否正常。
可以直接手工展现单一报表来记录时间,也可以通过报表调试工具来获取单一报表的详细用时。
如果报表展现的数据量本身很大,请参见:大数据量报表。
通过查看报表调试工具显示的详细用时,或者通过数据集调试工具,可以判断数据集是否应进行相应优化。
报表设计的优化
如果报表本身计算用时过长,或者虽然数据集本身已无优化余地但数据集过多或用时过长,则应从报表设计角度考虑是否可进行以下优化:
- 慎用效率较低的表达式,例如:使用select1代替select
- 同一数据集不要使用多处select
- 减少表达式的使用
- 避免显示值表达式中使用数据量过大的数据集
- 避免多表关联时使用数据量过大的数据集,单元格过滤和数据集过滤都能满足需求时,优先在数据集中过滤数据
- 避免大量单元格或者字段的sum/count/avg等聚合计算
- 注意左主格和扩展格的正确用法,避免出现报表扩展设计错误,出现数据量成倍增加的现象。
在优化报表设计时,常用的方式是逐步删减,通过每次去掉报表中一部分内容,比较前后性能的差异,判断每个环节对报表性能的影响,从而找到优化点。
如果通过优化报表设计仍然不能解决的,可以基于报表调试工具将报表的相关信息抽取出来,发送给厂商技术支持协助研究。