openGauss学习笔记-225 openGauss性能调优-系统调优-配置向量化执行引擎

news2024/12/26 23:00:18

文章目录

    • openGauss学习笔记-225 openGauss性能调优-系统调优-配置向量化执行引擎

openGauss学习笔记-225 openGauss性能调优-系统调优-配置向量化执行引擎

openGauss数据库支持行执行引擎和向量化执行引擎,分别对应行存表和列存表。

  • 一次一个batch,读取更多数据,节省IO。
  • batch中记录较多,CPU cache命中率提升。
  • Pipeline模式执行,函数调用次数少。
  • 一次处理一批数据,效率高。

openGauss数据库所以对于分析类的复杂查询能够获得更好的查询性能。但列存表在数据插入和数据更新上表现不佳,对于存在数据频繁插入和更新的业务无法使用列存表。

为了提升行存表在分析类的复杂查询上的查询性能,openGauss数据库提供行存表使用向量化执行引擎的能力。通过设置GUC参数try_vector_engine_strategy,可以将包含行存表的查询语句转换为向量化执行计划执行。

行存表转换为向量化执行引擎执行不是对所有的查询场景都适用。参考向量化引擎的优势,如果查询语句中包含表达式计算、多表join、聚集等操作时,通过转换为向量化执行能够获得性能提升。从原理上分析,行存表转换为向量化执行,会产生转换的开销,导致性能下降。而上述操作的表达式计算、join操作、聚集操作转换为向量化执行之后,能够获得获得性能提升。所以查询转换为向量化执行后,性能是否提升,取决于查询转换为向量化之后获得的性能提升能否高于转换产生的性能开销。

以TPCH Q1为例,使用行执行引擎时,扫描算子的执行时间为405210ms,聚集操作的执行时间为2618964ms;而转换为向量化执行引擎后,扫描算子(SeqScan + VectorAdapter)的执行时间为470840ms,聚集操作的执行时间为212384ms,所以查询能够获得性能提升。

TPCH Q1 行执行引擎执行计划:

                                                                QUERY PLAN                                                                 
-------------------------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=43539570.49..43539570.50 rows=6 width=260) (actual time=3024174.439..3024174.439 rows=4 loops=1)
   Sort Key: l_returnflag, l_linestatus
   Sort Method: quicksort  Memory: 25kB
   ->  HashAggregate  (cost=43539570.30..43539570.41 rows=6 width=260) (actual time=3024174.396..3024174.403 rows=4 loops=1)
         Group By Key: l_returnflag, l_linestatus
         ->  Seq Scan on lineitem  (cost=0.00..19904554.46 rows=590875396 width=28) (actual time=0.016..405210.038 rows=596140342 loops=1)
               Filter: (l_shipdate <= '1998-10-01 00:00:00'::timestamp without time zone)
               Rows Removed by Filter: 3897560
 Total runtime: 3024174.578 ms
(9 rows)

TPCH Q1 向量化执行引擎执行计划:

                                                                             QUERY PLAN                                                                             
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Row Adapter  (cost=43825808.18..43825808.18 rows=6 width=298) (actual time=683224.925..683224.927 rows=4 loops=1)
   ->  Vector Sort  (cost=43825808.16..43825808.18 rows=6 width=298) (actual time=683224.919..683224.919 rows=4 loops=1)
         Sort Key: l_returnflag, l_linestatus
         Sort Method: quicksort  Memory: 3kB
         ->  Vector Sonic Hash Aggregate  (cost=43825807.98..43825808.08 rows=6 width=298) (actual time=683224.837..683224.837 rows=4 loops=1)
               Group By Key: l_returnflag, l_linestatus
               ->  Vector Adapter(type: BATCH MODE)  (cost=19966853.54..19966853.54 rows=596473861 width=66) (actual time=0.982..470840.274 rows=596140342 loops=1)
                     Filter: (l_shipdate <= '1998-10-01 00:00:00'::timestamp without time zone)
                     Rows Removed by Filter: 3897560
                     ->  Seq Scan on lineitem  (cost=0.00..19966853.54 rows=596473861 width=66) (actual time=0.364..199301.737 rows=600037902 loops=1)
 Total runtime: 683225.564 ms
(11 rows)

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

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

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

相关文章

C++如何避免float误差?

C如何避免float误差&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; …

openEuler2203 LTS安装VMware WorkStation Pro 17并远程桌面连接Linux服务器

openEuler 2203 LTS默认只有命令行&#xff0c;没有GUI图形界面&#xff0c;在其中安装VMware WorkStation需要有图形界面的支持。这里以安装深度的DDE桌面环境&#xff0c;最后通过VNC远程桌面连接Linux服务器操作VMware WorkStation。 以下操作请保持网络能正常连接 1、安装…

如何使用idea连接服务器上的mysql?

安全组进行开放 具体步骤 关闭防火墙 开放端口号 重启防火墙 firewall-cmd --reload在mysql进行修改配置 update user set host % where user root;flush privileges;使得其他网络也可以连接这个数据库 另外如果想要sqlyog或者其他图形化界面要连接到数据库可以看下面这…

【论文解读】transformer小目标检测综述

目录 一、简要介绍 二、研究背景 三、用于小目标检测的transformer 3.1 Object Representation 3.2 Fast Attention for High-Resolution or Multi-Scale Feature Maps 3.3 Fully Transformer-Based Detectors 3.4 Architecture and Block Modifications 3.6 Improved …

【打工日常】使用docker部署StackEdit编辑器-Markdown之利器

一、StackEdit介绍 StackEdit一款强大的在线Markdown编辑器&#xff0c;不仅具备卓越的写作功能&#xff0c;还支持实时预览、多设备同步等特性。 很多时候基于安全和信息保密的关系&#xff0c;建议放在自己的服务器或者本地linux去运行&#xff0c;这样会比较省心。 二、本次…

云快充1.5-帧类型码数据定义

1、 注册心跳帧类型码数据定义 1.1 充电桩登录认证 1.2 登录认证应答 1.3 充电桩心跳包 1.4 心跳包应答 1.5 计费模型验证请求 1.6 计费模型验证请求应答 1.7 充电桩计费模型请求 1.8 计费模型请求应答 2、 实时数据帧类型码数据定义 2.1 读取实时监测数据 2.2 上传实…

【AIGC】开源声音克隆GPT-SoVITS

GPT-SoVITS 是由 RVC 创始人 RVC-Boss 与 AI 声音转换技术专家 Rcell 共同开发的一款跨语言 TTS 克隆项目&#xff0c;被誉为“最强大中文声音克隆项目” 相比以往的声音克隆项目&#xff0c;GPT-SoVITS 对硬件配置的要求相对较低&#xff0c;一般只需 6GB 显存以上的 GPU 即可…

冷链物流追踪:Java与MySQL的协同实践

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

打造智能物品租赁平台:Java与SpringBoot的实践

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

工业网关的功能和优势,以及如何选择合适的工业网关-天拓四方

工业网关是连接各种工业设备和系统的通信设备&#xff0c;可以实现不同设备和系统之间的数据交换和通信。它可以作为一个中心节点&#xff0c;将各种工业设备连接起来&#xff0c;形成一个统一的通信网络&#xff0c;从而实现设备的远程监控、数据采集、分析和控制等功能。在工…

【web安全】渗透测试实战思路

步骤一&#xff1a;选目标 1. 不建议太小的公司&#xff08;可能都是请别人来开发的&#xff0c;用现成成熟的框架&#xff09; 2. 不建议一线大厂&#xff1a;腾讯&#xff0c;字节&#xff0c;阿里等&#xff0c;你懂的 3. 不建议政府部门&#xff0c;安全设备多&#xff…

c++ 到底是什么呢。需要学的太多了!

如谷歌&#xff0c;苹果&#xff0c;微软&#xff0c;造硬件的更是如此&#xff0c;如amd的&#xff0c;英传达&#xff0c;英特尔&#xff0c;他们都有C加速库。 C难就难在你如果达到顶峰&#xff0c;像些公司一样&#xff0c;是非常难的。因为这些公司已经垄断了市场。 C编译…

Linux离线安装插件

当公司Linux环境无外网情况下&#xff0c;需要先下载好离线安装包&#xff0c;然后上传到服务器&#xff0c;进行安装。 这里介绍一个下载插件安装包的网站&#xff0c;可以搜索到lrzsz、lsof、telnet、unzip、zip等安装包 搜索到想要的插件安装包后&#xff0c;下载并上传到服…

关于xinput1_3.dll丢失怎么修复,xinput1_3.dll缺失如何解决的方法

xinput1_3.dll 是一个与 Microsoft DirectX 相关的动态链接库&#xff08;DLL&#xff09;文件&#xff0c;它是 Windows 操作系统中用于处理输入设备功能的重要组件。以下是对 xinput1_3.dll 文件的详细属性和作用进行介绍&#xff1a; 一、xinput1_3.dll基本属性 文件名&am…

适用于 Linux、Windows 和 macOS 的免费 ONLYOFFICE 桌面应用程序

前言&#xff1a; 最近也是发现了一款特别好用的免费ONLYOFFICE 桌面应用程序忍不住分享给大家&#xff0c;这款编辑器能够打开、阅读和编辑多种文件类型&#xff0c;包括.docx文档、.pptx幻灯片和.xlsx表格等开放XML格式的Office文档。此外&#xff0c;ONLYOFFICE桌面编辑器还…

Linux常见的指令

目录 01. ls 指令02. pwd命令03. cd 指令04. touch指令05.mkdir指令&#xff08;重要&#xff09;&#xff1a;06.rmdir指令 && rm 指令&#xff08;重要&#xff09;&#xff1a;07.man指令&#xff08;重要&#xff09;&#xff1a;08.cp指令&#xff08;重要&#x…

《探索网校 App 的魅力世界:知识与科技的完美结合》

在数字化时代&#xff0c;教育也在经历着深刻的变革。网校 App 的出现&#xff0c;正为学习者们开启了一扇通往知识的新大门&#xff0c;它融合了科技的力量&#xff0c;让学习变得更加便捷、高效和有趣。 一、功能与优势 网校 App 提供了丰富多样的学习功能&#xff0c;满足了…

盲盒小程序开发,线上盲盒应该具备哪些功能?

盲盒在我国是一个热门行业&#xff0c;它的种类繁多&#xff0c;玩法新奇有趣&#xff0c;吸引了无数年轻人的眼光&#xff0c;发展更是经久不衰&#xff01; 随着科学技术的不断发展&#xff0c;盲盒行业也在继续保持上升趋势&#xff0c;为我国消费者带来了更多的新体验&…

Commonjs 和 Es Module详解

一 前言 今天我们来深度分析一下 Commonjs 和 Es Module&#xff0c;希望通过本文的学习&#xff0c;能够让大家彻底明白 Commonjs 和 Es Module 原理&#xff0c;能够一次性搞定面试中遇到的大部分有关 Commonjs 和 Es Module 的问题。 带上疑问开始今天的分析&#xff1a; …

leetcode hot 100最后一块石头重量Ⅱ

在本题中&#xff0c;我们可以知道&#xff0c;是要求最后石头返还的重量&#xff0c;也就是&#xff0c;将整个数组分割成两个子集&#xff0c;求让两个子集的差值最小。这和上一道分割整数集类似&#xff0c;只是需要我们返回差值。所以我们采用动态规划01背包来做&#xff0…