反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

缓存模板管理

  • 文档创建者:Wendy123456
  • 历史版本:1
  • 最近更新:Wendy123456 于 2022-02-22
  • 1. 概述

    抽数缓存插件 安装后,若想为模板开启「全局缓存」和「联动缓存」,可在「模板缓存管理处」进行设置。如下图所示:

    4.png

    2. 功能介绍

    全局缓存,缓存的是查询结果,但有时用户数据集里的参数是会变化的,结果有很多,这时候全局缓存的作用就不明显了,此时建议使用联动缓存。

    2.1 全局缓存

    可将常用的数据集或者 sql 函数抽取到内存进行缓存,之后预览相关模板时,就能明显提高查询的速度。

    如果对于数据的实时性要求不高,能接受半小时左右的更新频率,那么使用缓存是一种既能降低服务器和数据库压力,又能提升报表执行速度的方案。

    2.2 联动缓存

    2.2.1 功能描述

    可将模板中用于联动的数据集和 sql 函数去参缓存,有利于加速模板中参数联动的性能。

    「联动缓存」基于「全局缓存」进行了场景的扩充,支持了填报场景下例如控件数据字典联动,控件值联动等场景,加快了控件操作时的取数速度,优化了交互体验。

    2.2.2 缓存对象

    数据集:控件数据字典(参数面板控件、单元格控件、表单控件)使用的带有参数的 sql 语句。

    sql 函数:单元格值、条件属性、形态、校验、提交中使用的带有参数的 sql 函数。

    2.2.3 注意事项

    1)「联动缓存」是「全局缓存」的一部分,其通用设置功能一致。

    2)仅支持 MySQL、SQLServer、Oracle 数据库。

    3)不支持部分 sql 语句结构。具体可见下表:

    不支持场景示例
    参数不在 where 最外层,比如在子查询中SELECT * FROM S产品 where 产品ID in (SELECT 产品ID FROM S产品明细 where 产品名称="${mc}")
    参数在数据库公式内SELECT * FROM S产品 where 产品ID = fanruan("${id}")
    参数在 group by 或者 order by 语句中SELECT * FROM S产品 order by "${id}"
    存在 if 函数,且结果分支大于 1(空分支不算)SELECT * FROM S产品 where 1=1  ${if(len(id) == 0,"and 产品ID=1","and 产品ID = '" + id + "'")} 
    where 条件中包含字段与操作符相同的条件SELECT * FROM S产品 where 产品ID >1 and 产品ID >2
    存在 sum 等计算函数SELECT sum(单价) FROM S产品 where 产品ID < 5

    2.3 全局缓存、联动缓存区别

    1)缓存初始化时机不一样:「全局缓存」是在设置开启全局缓存,模板加载的时候进行初始化;「联动缓存」是在开启模板联动缓存时,后台就按照顺序开始抽取。

    2)缓存范围不一样:全局缓存是将一个模板的所有 sql 全部缓存;联动缓存只将一个模板中用于联动的 sql 进行缓存。

    3)缓存 sql 不一样:全局缓存是将完整的 sql 进行缓存;联动缓存是将简单 sql 去参后进行缓存。

    4)读取缓存后的计算逻辑不一样:全局缓存是直接读取缓存结果用于模板计算;联动缓存读取缓存后还需要拼接上 sql 中的参数进行过滤后,再用于模板计算。

    3. 操作步骤

    3.1 缓存模板推荐

    首次安装「抽数缓存」插件并使用时,建议使用「缓存模板管理」功能进行检测适合开启缓存的模板。

    点击「开始分析」后,插件将根据系统的历史运行数据进行分析,并推荐可能适合使用缓存的模板。如下图所示:

    6.png

    3.2 缓存模板管理

    1)用户可在此处添加、取消开启缓存的模板。如下图所示:

    注:支持同时开启「全局缓存」和「联动缓存」。

    7.png

    2)用户如果对缓存的使用状况有了解诉求,或想手动处理部分异常缓存时,可参见:缓存运行监控


    附件列表


    主题: 性能优化
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526