ORCA优化器浅析——ORCA core流程

news2024/11/27 20:38:47

在这里插入图片描述

  1. DXL query messages is parsed and transformed to an in-memory logical expression tree that is copied-in to the Memo
  2. Exploration 触发生成逻辑等价表达式的转换规则。探索阶段将新的群组表达式添加到现有组中,并可能创建新的组。Exploration results in adding new group expressions to existing groups and possibly creating new groups.
  3. Statistics Derivation Orca’s statistics derivation mechanism is triggered to compute statistics for the Memo groups. Orca中的统计对象主要是列直方图的集合,用于导出基数和数据倾斜的估计。统计数据的推导在Memo结构上进行,以避免扩展搜索空间。In order to derive statistics for a target group, Orca picks the group expression with the highest promise of delivering reliable statistics. 为了获得目标组的统计数据,Orca选择最有希望提供可靠统计数据的组表达式。 Statistics promise computation is expression-specific. Computing a confidence score for cardinality estimation is challenging due to the need to aggregate confidence scores across all nodes of a given expression. 计算基数估计的置信度分数是很困难的,因为需要在给定表达式的所有节点上聚合置信度分数。
    After picking the most promising group expression in the target group, Orca recursively triggers statistics derivation on the child groups of the picked group expression. Finally, the target group’s statistics object is constructed by com�bining the statistics objects of child groups. 在目标组上选择最有希望的组表达式后,Orca递归地触发对所选组表达式的子组的统计派生。最后,结合子分组的统计对象构建目标分组的统计对象。The requested histograms are loaded on demand from the catalog through the registered MD Provider, parsed into DXL and stored in the MD Cache to service future requests.
  4. Implementation. Transformation rules that create physical implementations of logical expressions are triggered. For example, Get2Scan rule is triggered to generate physical table Scan out of logical Get. Similarly, InnerJoin2HashJoin and InnerJoin2NLJoin rules are triggered to generate Hash and Nested Loops join implementations
  5. Optimization 在此步骤,执行属性并对替代计划方案进行成本计算。In this step, properties are enforced and plan alternatives are costed. Optimization starts by submitting an initial optimization request to the Memo’s root group specifying query requirements such as result distribution and sort order. 优化首先向Memo根组提交初始化请求,指定查询需求,如结果分布和排序顺序。Submitting a request r to a group g corresponds to requesting the least cost plan satisfying r with a root physical operator in g. For each incoming request, each physical group expression passes corresponding requests to child groups depending on the incoming requirements and operator’s local requirements. 对于每个传入请求,每个物理组表达式根据传入需求和操作本地需求将相应的请求传递给子组。
    在这里插入图片描述
    在这里插入图片描述
    During optimization, many identical requests may be submitted to the same group. Orca caches computed requests into a group hash table. An incoming request is computed only if it does not already exist in group hash table. Additionally, each physical group expression maintains a local hash table mapping incoming requests to the corresponding child requests. Local hash tables provide the linkage structure used when extracting a physical plan from the Memo.

内容摘自
Orca: A Modular Query Optimizer Architecture for Big Data

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/759671.html

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

相关文章

Java性能优化-测试try-catch放在循环内和外的性能对比与业务区别

场景 Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化: Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_霸道流氓气质的博客-CSDN博客 使用如上方式测试Java中try-catch放在循环内和循环外是否有性…

NiuBi!简单且匿名的密码喷洒工具

工具介绍 通过 Amazon AWS 直通代理启动密码喷洒/暴力破解,为每次身份验证尝试转移请求的 IP 地址。这会动态创建 FireProx API,以实现更规避的密码喷射。 关注【Hack分享吧】公众号,回复关键字【230525】获取下载链接 小心帐户锁定&#xf…

Java 设计模式——工厂方法模式

目录 1.案例分析2.简单工厂模式2.1.结构2.2.案例实现2.2.1.抽象产品2.2.2.具体产品2.2.3.具体工厂2.2.4.测试 2.3.优缺点2.4.扩展 3.✨工厂方法模式3.1.介绍3.1.结构3.2.案例实现3.2.1.抽象工厂3.2.2.具体工厂3.2.3.测试 3.3.优缺点3.4.应用场景 1.案例分析 【需求】设计一个咖…

python获取职教云信息

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:项目。 目录 1、需求1.1、推荐课程1.2、课程详情 2、思路分析2.1、推荐课程完整代码 2.2、课程详情找到JSON数据…

4.2.tensorRT基础(1)-第一个trt程序,实现模型编译的过程

目录 前言1. hello案例2. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 基础-第一个 trt 程序&#x…

SlickGrid学习

options: 选项 设置 enableCellNavigation 启用单元格导航,可以点单元格 enableColumnReorder 启动拖拽列 example-colspan.html 跨列实例 AutoTooltips plugin 隐藏列文字时自动显现列标题全文 Checkbox row select column 增加选择列来选择行…

STM32入门学习之core_cm3问题

1.安装了keil之后,新建工程出现几百个关于core_cm3的问题,百思不得其解。后在网上查阅资料后,了解到可能是keil版本的问题,是因为我下载的keill版本太高了,内部不支持ARM5.06的编译器。出现很多关于core_cm3的问题是因…

使用java语言制作一个窗体(弹窗),用来收集用户输入的内容

前言 最近做的一个需求,有个逻辑环节是:需要从本地保存的xml文件中取出一个值,这个值是会变化的。然后项目经理就给我说,你能不能做一个小工具,让用户可以直接通过界面化操作将这个变化的值写入文件,不用再…

rv1126交叉编译

目录 一、解压sdk二、交叉编译出动态库sqlite3交叉编译opencv交叉编译一、解压sdk tar xzvf rv1126_rv1109_linux_sdk_v1.8.0_PureVersion.tar.gz 查看交叉编译工具链 pwd查看绝对路径/home

正斜杠“/” 和反斜杠 “\” 傻傻分不清?

Note, on your keyboard, the location of two different punctuation marks—/, or forward slash, and \, or backward slash (also known as backslash). As you read from left to right, the forward slash falls forward while the backslash falls backward; 引用自 《…

js逆向思路-区分各个瑞数版本vmp/3/4/5/6代

目录 一、如何区分是最新瑞数vmp反爬二、3/4/5/6代/vmp版本的瑞数网站特征举例三、瑞数反爬的解决思路四、推荐相关瑞数文章五、一些心得一、如何区分是最新瑞数vmp反爬 前言:本篇文章不会介绍详细的解决反爬的算法扣代码过程,只是一些经验闲谈,文章的末尾有相关的好的质量的…

油猴脚本-Bilibili剧场模式仿Youtube

对比某个不存在的视频网站(YouTube),以及B站的播放模式,普通模式以及网页全屏之间都有一个“中间档”,油管的叫 剧场模式,B站的叫 宽屏模式。 剧场模式 宽屏模式 相比之下,还是更喜欢油管的剧…

10.带你入门matlab频率表、盒图(matlab程序)

1.简述 相关概念介绍 以信号为例,信号在时域下的图形可以显示信号如何随着时间变化,而信号在频域下的图形(一般称为频谱)可以显示信号分布在哪些频率及其比例。频域的表示法除了有各个频率下的大小外,也会有各个频率的…

《遗留系统现代化》读书笔记(基础篇)

你现在所写的每一行代码,都是未来的遗留系统 为什么要对遗留系统进行现代化? 什么是遗留系统? 判断遗留系统的几个维度:代码、架构、测试、DevOps 以及技术和工具。时间长短并不是衡量遗留系统的标准。代码质量差、架构混乱、没…

【C++】多线程编程系列总纲

本系列文章主要介绍C11并发编程,主要包括如下篇目: 1、多线程编程一(初识并发和多线程) https://blog.csdn.net/Jacky_Feng/article/details/131751373?csdn_share_tail{"type"%3A"blog"%2C"rType&qu…

idea快捷方式,(主要是自己用的,持续收集)

编辑器 代码光标扩大选中 快捷键名字 使用方式 此时光标在这这里,按一下发现选中面积扩大, 如果再按快捷键,选中面积还扩大

带你【玩转Linux命令】➾ find cut 每天2个day06

带你【玩转Linux命令】➾ find & cut 每天2个day06 🔻 一、文件管理命令1.1 find-查找文件或目录1.2 cut-指定欲显示的文件内容,输出到标准输出设备 🔻 总结—温故知新 🔻 一、文件管理命令 1.1 find-查找文件或目录 &#x…

【Nacos】基于k8s容器化部署Nacos集群

近期,在机器上部署了三个节点的nacos集群服务用于几个小型微服务的注册配置中心,并使用了Nginx简单代理了一下,随即简单研究了下集群部署分布式部署稍微提高可用性。部署完后能够正常使用,但是发现一个问题,刷新Nacos集…

制作文件间链接

制作文件间链接 管理文件间链接 硬/软链接 创建指向同一个文件的多个名称。 创建硬链接 从初始名称到文件系统的数据,每个文件都以一个硬链接开始。当创建指向文件的新硬链接时,也会创建另一个指向同一数据的名称。新硬链接与原始文件名作用相同。一经创建&…

Maya适合哪个工作站?

Autodesk Maya 提供多种功能,可以适应电影、游戏和建筑等不同行业的需求。定制的 Autodesk Maya 工作站可以帮助您提高行业领先的 3D 计算机动画、建模、模拟和渲染软件的工作效率和用户体验。 根据您的特定需求定制的快速、强大的工作站可以帮助您充分利用 Maya 工…