当前位置: 首页 > news >正文

SAP HANA Scale-out 04:缓存

结果缓存

静态结果缓存 Vs 动态结果缓存

FeatureStatic Result CacheDynamic Result Cache
Target Scenario对复杂视图(通常是顶层视图)的查询频繁更新的大表(例如ACDOCA)上的聚合查询
Query result非实时数据实时数据
ScopeTarget objects:
SQL View,
User-defined table function,
Calculation view

Aggregation types: SUM, MIN, MAX, COUNT.
Target objects:
SQL Views on the
aggregation of a single column table.
Aggregation types:
SUM, COUNT, AVG -完全支持
MIN, MAX- 部分支持
Cache Maintenance设定失效时间,到期后重新全量刷新每次查询执行时:
如果能够识别更新的记录,则缓存会增量更新这些记录。
如果无法识别更新(由于多版本并发控制垃圾回收)则缓存将完全刷新。
Implicit view matching不支持Supported with hint / configuration.
Adoption effort: defining cache通常基于CDS viewcalculation view定义static result cache
In the case of a CDS view without aggregation the result cache should be defined with expected aggregation type from target queries.
If the target aggregation is already defined as a view, dynamic result can be enabled on the existing view (explicit usage).
Otherwise, a new view definition is required and dynamic result cache can be used with implicit view matching.
Adoption effort: enable cache utilization使用hint访问缓存数据Dynamic result cache is utilized by default even without a hint (but hint or configuration is required for enabling implicit view matching in the current release.)

Static Result Cache

语法

--创建视图时指定缓存配置
CREATE VIEW ... WITH CACHE RETENTION [<minutes>] ...
--修改视图-调整缓存配置
ALTER VIEW ... ADD CACHE RETENTION [<minutes>] ...
--修改视图-增加缓存配置
ALTER VIEW ... ALTER CACHE RETENTION [<minutes>] ...
--删除缓存配置
ALTER VIEW ... DROP CACHE--刷新缓存数据
ALTER SYSTEM REFRESH RESULT CACHE <object_name>
ALTER SYSTEM REFRESH RESULT CACHE ENTRY <cache_id>
--清空缓存数据,下次访问时重建
ALTER SYSTEM REMOVE RESULT CACHE ENTRY <cache_id>

缓存示例

--创建视图
CREATE VIEW ZSV_ZAD141
AS 
(SELECT * FROM "_SYS_BIC"."CNXXXXX141" )--配置视图缓存
ALTER VIEW ZSV_ZAD141
ADD CACHE RETENTION 60;--配置视图缓存(指定字段)
ALTER VIEW ZSV_ZAD141
ADD CACHE RETENTION 120 
OF A, SUM(KF1), MIN(KF2), MAX(KF3); --配置视图缓存(过滤器)
ALTER VIEW ZSV_ZAD141
ADD CACHE RETENTION 120 
FILTER B > 3; 

使用缓存

--查询时使用缓存
SELECT * FROM ZSV_ZAD141 WITH HINT(RESULT_CACHE);
--查询时跳过缓存
SELECT * FROM ZSV_ZAD141 WITH HINT(NO_RESULT_CACHE);--通过Explain Plan 检查查询是否使用了缓存

缓存监控

--M_HEAP_MEMORY
SELECT * FROM M_HEAP_MEMORY;
--静态缓存信息
SELECT * from RESULT_CACHE
WHERE 1 = 1AND OBJECT_NAME = 'SIMPLE_VIEW';
--静态缓存字段信息
ELECT * FROM RESULT_CACHE_COLUMNS
--检查缓存刷新及访问信息
SELECT * FROM M_RESULT_CACHE;

Dynamic Result Cache

语法

--启用动态缓存
CREATE VIEW ... WITH DYNAMIC CACHE ...
ALTER VIEW ... ADD DYNAMIC CACHE ...
ALTER VIEW ... ALTER DYNAMIC CACHE ...
--禁用动态缓存 
ALTER VIEW ... DROP DYNAMIC CACHE
--清除所有动态缓存
ALTER SYSTEM CLEAR DYNAMIC RESULT CACHE
--清除指定动态缓存
ALTER SYSTEM REMOVE DYNAMIC RESULT CACHE ENTRY <cache_id>

缓存配置

--创建视图
CREATE VIEW ZSV_ZAD142
AS 
(SELECT FKDAT_H_YM,VKORG,SUM(KWMENG) AS KWMENGFROM "SAPHANADB"."/BIC/AZOSD0022" GROUP BY FKDAT_H_YM,VKORG
);--配置视图缓存
ALTER VIEW ZSV_ZAD142
ADD DYNAMIC CACHE;--配置视图缓存(过滤器)
ALTER VIEW ZSV_ZAD142
ADD DYNAMIC CACHE
FILTER  B > 3; 

使用缓存

--不使用动态缓存
SELECT VKORG,KWMENG FROM ZSV_ZAD142 WITH HINT(NO_DYNAMIC_RESULT_CACHE)
--默认会使用动态缓存
SELECT VKORG,KWMENG FROM ZSV_ZAD142 WITH HINT(DYNAMIC_RESULT_CACHE)--启用匹配:查询底表时自动查找是否有匹配的动态缓存
SELECT VKORG,sum(KWMENG) FROM "SAPHANADB"."/BIC/AZOSD0022"
group by VKORG
WITH HINT(DYNAMIC_RESULT_CACHE_IMPLICIT_MATCH)
--禁用匹配:查询底表时禁止自动查找动态缓存
SELECT VKORG,sum(KWMENG) FROM "SAPHANADB"."/BIC/AZOSD0022"
group by VKORG
HINT(NO_DYNAMIC_RESULT_CACHE_IMPLICIT_MATCH)--使用GET_DYNAMIC_RESULT_CACHE_IMPLICIT_MATCH_CANDIDATES_IN_STATEMENT检查匹配

缓存监控

SELECT * FROM M_DYNAMIC_RESULT_CACHE;


文章转载自:

http://IlUAav2m.bxnrx.cn
http://M5DKqAIs.bxnrx.cn
http://uRnWK47P.bxnrx.cn
http://txsNIKWI.bxnrx.cn
http://C562QC1S.bxnrx.cn
http://oHoRIzUk.bxnrx.cn
http://yc9yFU0q.bxnrx.cn
http://oA3ZzPuM.bxnrx.cn
http://FDgLIJXU.bxnrx.cn
http://9i3ZfT9j.bxnrx.cn
http://isPOfTMf.bxnrx.cn
http://DEwkacCv.bxnrx.cn
http://ZsK0uEXq.bxnrx.cn
http://ImpSS8MF.bxnrx.cn
http://m5bM1x18.bxnrx.cn
http://SxOT8o4b.bxnrx.cn
http://yyTQqcyU.bxnrx.cn
http://3NPCmP97.bxnrx.cn
http://QtN1xTQ0.bxnrx.cn
http://pmXskx2j.bxnrx.cn
http://mt6A7iuj.bxnrx.cn
http://RWGAMVRc.bxnrx.cn
http://MXoUwrWG.bxnrx.cn
http://b5ZZ5r8R.bxnrx.cn
http://UHgSDkhk.bxnrx.cn
http://u5AJJpAf.bxnrx.cn
http://SX1mnjD1.bxnrx.cn
http://udjlRVNo.bxnrx.cn
http://ajHNOGDK.bxnrx.cn
http://rfiDd8R6.bxnrx.cn
http://www.dtcms.com/a/386156.html

相关文章:

  • ios制作storyboard全屏启动图
  • 2025高教杯数学建模大赛全流程,从数据处理、建模到模型评价
  • 点拨任务应用于哪些业务场景
  • 墨色规则与血色节点:C++红黑树设计与实现探秘
  • C#语言入门详解(19)委托详解
  • 【数字展厅】企业展厅设计怎样平衡科技与人文呈现?
  • Day25_【深度学习(3)—PyTorch使用(6)—张量拼接操作】
  • WSL2(ubuntu20.04)+vscode联合开发(附迁移方法)
  • 无线数传模块优化汽车装配立库物料运送设备间低延迟通信方案
  • Parasoft助力「东软睿驰」打造高质量汽车软件
  • 设计多租户 SaaS 系统,如何做到数据隔离 资源配额?
  • 基于错误xsleak 悬空标记 使用css利用帧计数 -- Pure leak ASIS CTF 2025
  • 【Day 57】Redis的部署
  • 在 Zellij 中用 Neovim 优雅地解决剪贴板同步问题
  • 云手机的技术架构可分为哪些
  • 基于 GitHub Actions 的 Kubernetes 集群节点变更操作自动化
  • 嵌入式第五十四天(EPIT,GPT)
  • 何为楼宇自动化控制系统的质量管理?本质与关键要素解析
  • Spring 源码学习(十二)—— HandlerMapping(一)
  • 七牛云技术前瞻:GPT-5-Codex如何开启智能体编程新时代
  • The Oxford-IIIT宠物图像识别数据集(753M)
  • 从Cursor到GPT-5-Codex:AI编程Agent的技术与商业全解析
  • 实践-医学影像AI诊断系统:基于DICOMweb、ViT/U-Net和Orthanc的端到端实现
  • HarmonyOS 应用开发新范式:深入理解声明式 UI 与状态管理 (基于 ArkUI API 12+)
  • UDP和TCP网络通信
  • 基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例应用
  • 网络:RDMA原理以及在AI基础设施中的应用
  • 深度学习之pytorch基本使用(二)
  • Redis 协议(RESP)详解:请求与响应解析
  • k8s污点与容忍介绍