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://www.pswp.cn/web/98099.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/98099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嘉兴禾润 HTR7216 (S) LED 驱动芯片:特性与应用

在如今智能设备飞速普及的时代&#xff0c;无论是智能家居的氛围营造、IoT 设备的状态提示&#xff0c;还是个人消费电子的视觉呈现&#xff0c;都离不开高性能 LED 驱动芯片的支撑。嘉兴禾润推出的 HTR7216 (S) LED 驱动芯片&#xff0c;凭借丰富的功能、精准的控制以及出色的…

Python实现剑龙优化算法 (Stegosaurus Optimization Algorithm, SOA)优化函数(付完整代码)

Python实现剑龙优化算法 (Stegosaurus Optimization Algorithm, SOA)优化函数&#xff08;付完整代码&#xff09;1.剑龙优化算法介绍剑龙优化算法&#xff08;Stegosaurus Optimization Algorithm&#xff0c;SOA&#xff09;是一种受剑龙独特生理结构和行为模式启发而设计的元…

分布式拜占庭容错算法——权益证明(PoS)算法详解

Java 实现权益证明&#xff08;PoS&#xff09;算法详解 一、PoS 核心机制 #mermaid-svg-Sbj0HU6MjOl1yo5L {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Sbj0HU6MjOl1yo5L .error-icon{fill:#552222;}#mermaid-s…

【论文阅读】谷歌:生成式数据优化,只需请求更好的数据

谷歌DeepMind团队通过Generative Data Refinement&#xff08;GDR&#xff09;技术&#xff0c;成功将极端有毒的4chan讨论数据转化为安全且语义丰富的训练素材&#xff0c;推动了LLM训练数据净化的新范式&#xff1a; • GDR利用预训练大模型对原始数据进行“重写”&#xff0…

C++ 多线程实战 10|C++20 的信号量、闩锁与屏障

目录 前言 学习目标 1. 信号量&#xff08;Semaphore&#xff09; 示例&#xff1a;限制并发下载任务 2. 闩锁&#xff08;Latch&#xff09; 示例&#xff1a;赛跑 3. 屏障&#xff08;Barrier&#xff09; 示例&#xff1a;图像处理流水线 4. 常见坑与对策 5. 实践作…

【Java SE】01. 初识Java

1. 认识Java Java是一种优秀的程序设计语言&#xff0c;它具有令人赏心悦目的语法和易于理解的语义。Java还是一个有一系列计算机软件和规范形成的技术体系&#xff0c;这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境&#xff0c;并广泛应用于嵌入式系统、移动终…

解锁仓储智能调度、运输路径优化、数据实时追踪,全功能降本提效的智慧物流开源了

AI 视频监控平台&#xff1a;全链路协同驱动的智能监控解决方案AI 视频监控平台是一款融合高性能功能与轻量化操作的实时算法驱动型视频监控系统&#xff0c;其核心愿景在于深度破除不同芯片厂商间的技术壁垒&#xff0c;省去冗余重复的适配环节&#xff0c;最终达成芯片、算法…

冒泡排序与选择排序以及单链表与双链表

1. 冒泡排序&#xff08;Bubble Sort&#xff09; 1. 原理 冒泡排序是一种 简单的排序算法&#xff0c;通过 两两比较相邻元素&#xff0c;把较大的元素逐渐 “冒泡” 到数组末尾。 思路&#xff1a; 从数组头开始&#xff0c;比较相邻两个元素。 如果前一个比后一个大&…

Python实现计算点云投影面积

本次我们分享一种基于 Open3D 的快速、稳健方法&#xff0c;用于从激光点云中自动提取“地面”并计算其投影面积。算法先自适应估计地面高程&#xff0c;再将地面点投影至水平面&#xff0c;随后用凸包或最小外接矩形求取面积。整个流程无需人工干预&#xff0c;单文件即可运行…

AXI4 协议

一、AXI4简介AXI4&#xff08;Advanced eXtensible Interface 4&#xff09;是ARM公司推出的高性能片上总线协议&#xff0c;属于AMBA&#xff08;Advanced Microcontroller Bus Architecture&#xff09;标准的一部分。它专为高带宽、低延迟的片上通信设计&#xff0c;广泛应用…

《饿殍:明末千里行》Switch版试玩发布 3月13日发售

使用jQuery的常用方法与返回值分析 jQuery是一个轻量级的JavaScript库&#xff0c;旨在简化HTML文档遍历和操作、事件处理以及动画效果的创建。本文将介绍一些常用的jQuery方法及其返回值&#xff0c;帮助开发者更好地理解和运用这一强大的库。 1. 选择器方法 jQuery提供了多种…

[特殊字符] 认识用户手册用户手册(也称用户指南、产品手册)是通过对产品功能的清

一份优秀的用户手册能有效降低用户的使用门槛&#xff0c;提升用户体验和工作效率。下面我将为你梳理编写用户手册的核心要点、步骤和技巧。&#x1f4d6; 认识用户手册用户手册&#xff08;也称用户指南、产品手册&#xff09;是​​通过对产品功能的清晰解释&#xff0c;为特…

苹果软件代码混淆,iOS混淆、iOS加固、ipa安全与合规取证注意事项(实战指南)

在移动软件交付与合规审计中&#xff0c;苹果软件代码混淆已成为保护知识产权与用户数据的常规手段。但混淆带来的不仅是逆向难度的提升&#xff0c;也会触发崩溃取证、符号化&#xff08;symbolication&#xff09;、审计合规与法律证据保存等问题。本文从工程与合规双视角出发…

Redis框架详解

目录 1. redis是什么 主要特点 2. redis中存储的数据类型 2.1 String类型 2.2 List类型 2.3 Hash类型 2.4 Set类型 2.5 Zset类型 2.6 其它类型 3.redis高可用框架 1. redis是什么 Redis 是一个开源的、基于内存的数据结构存储系统&#xff0c;是 Remote Dictionary…

每日随机展示10个wordpress置顶文章

WordPress 置顶文章是博主根据自己的需要设置的&#xff0c;通常用于展示重要或热门的文章。 以下是一个示例代码&#xff0c;用于在 WordPress 主题中展示 10 个置顶文章&#xff1a; <?php // 查询置顶文章 $sticky get_option(sticky_posts); $args array(post__in …

金融工程vs金融数学:谁更贴近量化交易?

在金融行业迈向高度数字化的今天&#xff0c;量化交易已成为顶尖金融机构的核心竞争力之一。它以数学模型为基础&#xff0c;借助编程技术实现策略自动化&#xff0c;在高频、中低频、套利、因子投资等多个领域展现出强大生命力。对于有志于此的大学生而言&#xff0c;选择一个…

实测AI Ping,一个大模型服务选型的实用工具

作为一名长期奋战在一线的AI应用工程师&#xff0c;我在技术选型中最头疼的问题就是&#xff1a;“这个模型服务的真实性能到底如何&#xff1f;” 官方的基准测试总是在理想环境下进行&#xff0c;而一旦投入使用&#xff0c;延迟波动、吞吐下降、高峰期服务不可用等问题就接踵…

深信服软件:aTrustAgent异常占用问题处理

问题&#xff1a;aTrustAgent占用CPU 大早上开电脑&#xff0c;风扇转的飞起&#xff0c;任务管理器看&#xff0c;发现是有几个 aTrustAgent 进程搞得鬼。 印象中&#xff0c;好像没有装过这个软件&#xff0c;搜了下&#xff0c;是深信服的软件&#xff0c;不知道是不是装哪…

基于国产银河麒麟服务器SP3项目实战(Nginx+Keepalive)实现高可用负载均衡

一、环境准备 192.168.113.11NginxKeepalive(Master)192.168.113.22Nginxkeepalive(Backup)192.168.113.33Nginx(web服务器)192.168.113.44 Nginx(服务器&#xff09; 二、环境搭建准备 2.1 Nginx源码编译安装 参考作责之前发布《Nginx源码编译安装》https://blog.csdn.net…

K近邻:从理论到实践

K近邻&#xff1a;从理论到实践 文章目录K近邻&#xff1a;从理论到实践1. 核心思想2. 距离度量3. k的选择与误差分析3.1 近似误差3.2 估计误差3.3 总误差4. kd树的构造与搜索4.1 kd树的构造4.2 kd树的搜索5. 总结6. K近邻用于iris数据集分类6.1加载数据6.2加载模型并可视化1. …