SAP HANA Scale-out 04:CalculationView優化

CV執行過程

  • 計算視圖激活時,生成Stored Model
  • SELECT查詢時:
    • 首先將Stored Model實例化為runtime Model?
    • 計算引擎執行優化,將runtime Model轉換為Optimized Runtime Model
    • Optimized Runtime Model通過SQL Optimizer進行優化

計算引擎優化

特性說明
Join cardinality
指定Join的連接基數
有可能實現Join剪枝,提高性能并減少臨時內存消耗
Optimized join columns
優化連接列
允許優化連接列,減少Join節點后需處理的數據量
Dynamic joins
動態連接
動態減少Join字段,減少Join節點處理數據量
Union Node Pruning
Union剪枝
允許Union數據源剪枝,提升性能
column pruning
列剪枝
計算視圖固有特性,引擎會在前期移除任何對結果不需要的字段

計算引擎優化

設置Join基數

出現Join剪枝前提:

  • SELECT字段不在要剪掉的表中
  • Join類型是外連接、引用連接、文本連接
  • 要剪掉的表的Joina基數是1

優化連接字段

連接字段前枝前提:

  • The join field is not requested by the query.
  • Only fields from one of the join partners are requested by the query.
  • The join is either an outer join, referential join, or text join.
  • The cardinality to the join partner from which none of the fields are requested is set to 1.

設置動態連接

  • 執行時Join時,連接列不是視圖定義時的所有連接列,而是僅需要的連接列(連接條件是動態的)
  • 動態連接與靜態連接執行的結果可能不一致,在使用前需明確其影響
  • 設置動態連接SELECT查詢時,必須要用到至少一個連接字段,否則會報執行時錯誤

Union節點剪枝

  • Constant mapping
  • Pruning configuration table

使用Hints

在語句層面配置
SELECT * FROM CV1 WITH HINT(NO_CALC_VIEW_UNFOLDING);
在CV層面配置

名稱使用場景
query_level_sql_hints?逗號分隔的hint僅對unfolding的視圖有效,若未展開,這些hint不起作用
qo_pop_hints?逗號分隔的hint僅對未展開且設置了在SQL引擎中執行的視圖才有效,hint僅對SQL引擎能優化的部分生效
no_calc_view_unfolding?1用于阻止視圖展開
sql_opt_hintsCALC_VIEW_UNFOLDING在全局禁止視圖展開的使用

說明

  • Hint名稱必須小寫
  • hints必須在最上層計算視圖上設置
  • 通過視圖M_CE_CALCSCENARIO_HINTS監控CV上的HINT設置

Execute in SQL Engine

無特殊配置情況下

配置Execute in SQL Engine

怎么確定Query是否展開

通過?Explain Plan功能,如果計劃內是具體的實體表,則視圖是展開的

若計劃內是計算視圖,則沒有展開

Static Cache

使用靜態緩存前提:

  • 視圖配置Enable Cache選項
  • 視圖可以展開
  • 視圖沒有granularity-tracking calculations
  • 查詢要求使用static cache,即HINT(RESULT_CACHE)

靜態緩存監控:M_RESULT_CACHE、RESULT_CACHE、RESULT_CACHE_COLUMNS

視圖檢查監控

CHECK_ANALYTICAL_MODEL ('<action>', '<schema_name>', '<object_name>',
<return_object>)

性能相關建議

建議:

  • 設置Join基數
  • 優化Join連接字段
  • scale-out場景Join字段是分區字段

不建議:

  • Join字段是計算列
  • 在計算列上進行數據過濾
  • Measures in join conditions
  • Measures in filter expressions?
  • Data type conversion in filters

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96560.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96560.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96560.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙審核問題——Scroll中嵌套了List/Grid時滑動問題

文章目錄背景原因解決辦法1、借鑒Flutter中的解決方式&#xff0c;如下圖2、鴻蒙Next中對應的解決方式&#xff0c;如下圖3、官方文檔回訪背景 來源一次審核被拒的情況。也是出于粗心導致的。之前在flutter項目中也是遇到過這種問題的。其實就是滾動視圖內嵌滾動視圖造成的&am…

測試電商購物車功能,設計測試case

在電商場景中&#xff0c;購物車是連接商品瀏覽與下單支付的關鍵環節&#xff0c;需要從功能、性能、兼容性、安全性等多維度進行測試。以下是購物車功能的測試用例設計&#xff1a; 一、功能測試 1. 商品添加到購物車 - 未登錄狀態下&#xff0c;添加商品到購物車&#xff08;…

Linux --- 常見的基本指令

一. 前言本篇博客使用的 Linux 操作系統是 centos &#xff0c;用來學習Linux 的 Linux 系統的內核版本和系統架構信息版本如下所示&#xff1a;上圖的主要結構為&#xff1a;主版本號-次版本號 修正次數&#xff0c;3.10.0 是操作系統的主版本號&#xff1b;當我們在維護一段L…

微信小程序 -開發郵箱注冊驗證功能

一、前端驗證&#xff1a;正則表達式與插件結合正則表達式設計 使用通用郵箱格式校驗正則&#xff0c;并允許中文域名&#xff08;如.中國&#xff09;&#xff1a; const emailReg /^[a-zA-Z0-9._%-][a-zA-Z0-9-](?:\.[a-zA-Z0-9-])*\.[a-zA-Z]{2,}(?:\.[a-zA-Z]{2})?$/i;…

docker 部署 code-server

docker 部署 code-servercode-serverError response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headersdocker 配置正確步驟 阿里云源permission de…

網絡編程專題:從源碼解析網絡編程常用方法(基于6.16.3內核)

前言 本文是因為作者在研究下面這個代碼時發現的問題&#xff1a; int main() {// 1. 創建 IPv4 專用地址結構體 sockaddr_instruct sockaddr_in ipv4_addr;memset(&ipv4_addr, 0, sizeof(ipv4_addr)); // 初始化清零// 2. 填充 IPv4 專屬信息ipv4_addr.sin_family AF_IN…

2025年數字公共治理專業重點學什么內容?(詳細指南)

數字公共治理作為一個新興的跨學科領域&#xff0c;近年來受到越來越多高校和學生的關注。這個專業融合了多個學科的知識體系&#xff0c;旨在培養掌握現代治理理念和技術應用能力的復合型人才。對于在校大學生而言&#xff0c;了解這一專業的學習內容和發展方向&#xff0c;有…

一招解決 win 下 終端打印中文亂碼問題

適合所有終端 cmd powershell git bash&#xff0c; 原理&#xff1a;修改電腦的區域設置&#xff0c;勾選使用 UTF-8 1.電腦搜索 區域&#xff0c; 打開區域設置2. 打開相關設置3. 點擊更改 日期、時間或數字格式4. 選則管理-點擊更改系統區域設置&#xff0c;在彈出框中勾選 …

Elasticsearch面試精講 Day 13:索引生命周期管理ILM

【Elasticsearch面試精講 Day 13】索引生命周期管理ILM 在“Elasticsearch面試精講”系列的第13天&#xff0c;我們將深入探討 索引生命周期管理&#xff08;Index Lifecycle Management, ILM&#xff09; 這一核心運維機制。作為大規模日志、監控和時序數據場景下的必備功能&…

Python快速入門專業版(二十八):函數參數進階:默認參數與可變參數(*args/**kwargs)

目錄引一、默認參數&#xff1a;給函數參數設置“默認值”1. 基本語法與使用示例示例1&#xff1a;帶默認參數的乘法函數2. 默認參數的核心規則&#xff1a;必須放在非默認參數之后示例2&#xff1a;默認參數位置錯誤&#xff08;報錯&#xff09;3. 默認參數的“可變對象陷阱”…

FreeRTOS 知識點

一、配置過程二、基本知識點2.1 搶占優先級和響應優先級在 FreeRTOS 中&#xff0c;任務的調度方式主要有 ??搶占式&#xff08;Preemptive&#xff09;?? 和 ??協作式&#xff08;Cooperative&#xff09;?? 兩種模式&#xff0c;它們的核心區別在于 ??任務如何釋放…

SQL注入漏洞手動測試詳細過程

這是一次詳細的、基于真實手動測試思維的SQL注入漏洞測試過程記錄。我們將以一個假設的Web應用程序為例&#xff0c;進行逐步探測和利用。測試目標假設我們正在測試一個名為 example.com 的電商網站&#xff0c;其有一個查看商品詳情的頁面&#xff0c;URL 為&#xff1a; http…

機器人控制器開發(通訊——ros話題轉為websocket)

1 為什么要實現ROS話題轉WebSocket 主要有如下5個優點&#xff1a;跨平臺通信需求 WebSocket作為一種標準的Web通信協議&#xff0c;允許任何支持WebSocket的客戶端&#xff08;網頁、移動應用、其他系統&#xff09;與ROS機器人進行實時通信&#xff0c;打破了ROS傳統通信方式…

SQL-字符串函數、數值函數、日期函數

字符串函數1. 字符串拼接concat-- 拼接字符串hello和mysql&#xff0c;結果為hellomysql -- 格式&#xff1a;concat(str1, str2, ...)&#xff1a;拼接多個字符串 select concat(hello, mysql);注意事項&#xff1a;若任一參數為null&#xff0c;結果為null&#xff08;如conc…

JAVA高級工程師--Redis持久化詳細版

一、Redis DBRedis 數據庫的數量在單機和集群模式下有根本性的區別。1. 單機模式 (Standalone)在單機模式下&#xff0c;Redis 默認提供 16 個邏輯數據庫&#xff0c;索引編號為 0 到 15。選擇數據庫&#xff1a; 使用 SELECT <index> 命令進行切換。例如&#xff0c;SE…

hexo文章

文章目錄Tag的使用勾選框圖片的組合站內文章引用注意&#xff1a;1、關于中括號的問題目錄總結 Tag的使用 在 markdown 中加入如下的代碼來使用便簽&#xff1a; {% note success %} 文字 或者 markdown 均可 {% endnote %}或者使用 HTML 形式&#xff1a; <p class&quo…

技術面:Spring (bean的生命周期、創建方式、注入方式、作用域)

Spring Bean的生命周期是什么樣的&#xff1f; 在Spring容器里一個Bean的從創建到銷毀一般都是經歷了以下幾個階段&#xff1a; 定義階段&#xff08;Bean元信息配置&#xff09;>實例化階段&#xff08;創建Bean對象&#xff09;>初始化階段&#xff08;執行初始化邏輯&…

SpringSecurity的應用

官方文檔 一、核心能力 1.1 身份認證 (Authentication) - “你是誰&#xff1f;” 多種認證方式&#xff1a;支持幾乎所有主流認證方案&#xff0c;如表單登錄&#xff08;Username/Password&#xff09;、HTTP Basic、HTTP Digest、OAuth 2.0、OIDC (OpenID Connect)、SAML …

跨境云手機與傳統手機的不同之處

傳統手機主要滿足個人日常生活中的通訊、娛樂、辦公等基礎需求&#xff0c;比如用于日常打電話聯系親朋好友&#xff0c;閑暇時刷短視頻、玩本地安裝的游戲&#xff0c;或者簡單處理一些文檔、郵件等辦公事務。跨境云手機主要是側重于跨境業務場景&#xff0c;對于從事跨境電商…

MemGPT: Towards LLMs as Operating Systems

1 MemGPT: Towards LLMs as Operating Systems 論文地址&#xff1a;MemGPT: Towards LLMs as Operating Systems 代碼地址&#xff1a;https://github.com/letta-ai/letta 1.1 MemGPT MemGPT&#xff08;MemoryGPT&#xff09;借鑒傳統操作系統的分層內存管理思想&#xff08;…