1 概述
缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。数据模型的缓存主要起到以下作用:提高数据加载速度、减少服务器负载和提升用户查询体验。
...
通过优化数据模型的缓存机制,可以加速报表的访问,降低数据库的压力。
2 功能介绍
在数据模型中可以设置缓存策略。如果是禁用缓存,每次取数都会重新取数。 如果是 启用缓存 在缓存有效期内,如果查询字段或值(比如筛选器的条件)未改动,再次访问时将直接从缓存中获取数据。
缓存策略:系统配置项、 禁用缓存、启动缓存3个选项, 默认选项:系统配置项。
选项 | 内容 |
---|
启用缓存 |
默认选项:系统配置项;可以选择 禁用缓存、启动缓存。
如果是禁用缓存,每次取数都会重新取数。 如果是 启用缓存 则取缓存数据。
模式都支持 启用缓存 1、抽取模式下:
2、直连模型下:
| |
禁用缓存 | 1、禁用缓存:不管是 抽取 还是 直连 模式每次请求都会发送新的请求,重新读取数据。
|
2、抽取模式下:
|
|
3、如果在报表层,比如仪表盘:
|
- 直接启用,如果不触发清理服务器缓存的话,缓存一直存在,但是缓存对象满了后,就如下面这点。
- 当数据模型的缓存对象已经满了时,再来一个新的数据模型对象,最近最少用的对象会自动清掉。
- 点击 运维设置/系统选项 的 “清空缓存”可以一起清理引擎的缓存。
- 更新模型或重抽会自动清理缓存。
如果在报表层,比如仪表盘:
- 真的无缓存,每次都取最新数据。
...
系统配置 | 默认读取运维设置/系统选项/性能优化/数据模型中的设置项值,跟着系统选项改变。 |
3 清除指定模型的缓存
通过接口定时清除具体某个/几个模型的缓存:
代码块 |
---|
① 接口方法全限定名: smartbix.smartbi.AugmentedDataSetForVModule.clearCacheByDatasetId(String) ② 接口调用: 1、前端调用 var util = jsloader.resolve('freequery.common.util');util.remoteInvoke(‘AugmentedDataSetForVModule’,’clearCacheByDatasetId’,['I82808081017f72bb72bb395f017f72bb395f0000']) 1、 后端调用 AugmentedDataSetForVModule.getInstance().clearCacheByDatasetId方法 ③ 接口参数及其说明: ● id: String 数据模型id。 ● 无返回值 ④ 调用示例: AugmentedDataSetForVModule.getInstanceSAugmentedDataSetForVModule.getInstance().clearCacheByDatasetId("I82808081017f72bb72bb395f017f72bb395f0000"); |
...