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
英文地址,請注明出處:http://en.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. …