首页 > 其他分享 >MogDB 使用向量化执行引擎进行调优

MogDB 使用向量化执行引擎进行调优

时间:2024-03-28 11:47:17浏览次数:20  
标签:rows cost .. MogDB 引擎 量化 调优 执行

MogDB 使用向量化执行引擎进行调优
本文出处:https://www.modb.pro/db/430318

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

一次一个 batch,读取更多数据,节省 IO。
batch 中记录较多,CPU cache 命中率提升。
Pipeline 模式执行,函数调用次数少。
一次处理一批数据,效率高。
MogDB 数据库所以对于分析类的复杂查询能够获得更好的查询性能。但列存表在数据插入和数据更新上表现不佳,对于存在数据频繁插入和更新的业务无法使用列存表。

为了提升行存表在分析类的复杂查询上的查询性能,MogDB 数据库提供行存表使用向量化执行引擎的能力。通过设置 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)

标签:rows,cost,..,MogDB,引擎,量化,调优,执行
From: https://www.cnblogs.com/helloopenGauss/p/18101236

相关文章

  • MogDB 使用样本数据集Mogila
    MogDB使用样本数据集MogilaMogDB提供了一个样本数据集Mogila,本数据集借鉴了适用于MySQL的Sakila示例数据库。Sakila最初由MySQLAB文档团队的MikeHillyer开发,其目的是提供一个可用于书籍、教程、文章、样本等示例的标准schema。Mogila数据集是一个关于DVD出租店......
  • mogdb里xlog相关的几个参数
    openGauss/MogDB3.0闪回恢复测试本文出处:https://www.modb.pro/db/411368介绍闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复......
  • 火山引擎VeDI:A/B测试开放平台正式上线,企业个性化平台一键定制
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 火山引擎数智平台VeDI旗下的A/B测试平台(DataTester),旨在为企业提供科学且可信的A/B测试能力及丰富的场景实验支持。随着企业的数据化进程加深,将A/B测试深度融入企业大数据体系及内部信......
  • openGauss 参数调优与诊断
    参数调优与诊断可获得性本特性自openGauss1.0.0版本开始引入特性简介本功能是一款数据库集成的参数调优工具,通过结合深度强化学习和全局搜索算法等AI技术,实现在无需人工干预的情况下,获取最佳数据库参数配置。本功能不强制与数据库环境部署到一起,支持独立部署,脱离数据库安装环......
  • openGauss X_Tuner_参数调优与诊断
    X-Tuner:参数调优与诊断可获得性本特性自openGauss1.0.0版本开始引入。特性简介X-Tuner是一款数据库集成的参数调优工具,通过结合深度强化学习和全局搜索算法等AI技术,实现在无需人工干预的情况下,获取最佳数据库参数配置。本功能不强制与数据库环境部署到一起,支持独立部署,脱......
  • 实验一 密码引擎-1-OpenEuler-OpenSSL编译
    安装Ubuntu和OpenEuler虚拟机下载最新的OpenSSL源码(3.2.1版本)用自己的8位学号建立一个文件夹,cd你的学号,用pwd获得绝对路径参考https://www.cnblogs.com/rocedu/p/5087623.html先在Ubuntu中完成OpenSSL编译安装,然后在OpenEuler中重现./config--prefix=..(学号目录......
  • Key-N-Value--基于Protocol Buffers的树型协议处理引擎
    导言KNV是Key-Value协议的无限嵌套和模式自由的扩展,允许使用者快速访问或修改ProtoBuffers协议中的一部分或者多个部分,KNV原是一个面向对象缓存系统的一部分,后面作为腾讯第一批开源组件对外开源。KNV的理念也申请并获得国家专利。​​​​​​​项目地址:GitHub-shaneyuee/......
  • 搜索引擎黑客语法
    逻辑符与(+或者空格)或(|)常用命令cache:www.baidu.com(寻找网页的缓存) allintext:hackingtools(在正文中寻找关键字)allintitle:医生和警察site:baidu.com(收集子域名)inurl:admin(关键字包含在url中)北极鲶鱼site:weibo.com因为互联网上的每一个资源都有url,所......
  • E810-CQDA1 E810-CQDA2 E810-2CQDA2 E810-XXVDA2 E810-XXVDA4 英特尔®以太网800系列
    E810-CQDA1E810-CQDA2E810-2CQDA2E810-XXVDA2E810-XXVDA4英特尔®以太网800系列Linux性能调优指南(第二篇续)4.0性能故障处理4.1CPU利用率在工作负载运行时检查每个核心的CPU利用率。注意:与总体CPU利用率相比,每个核心的利用率与性能更相关,因为它提供了每个网络队列......
  • 开源AI引擎:利用影像处理与目标检测技术对违章建筑排查
    一、项目案例介绍随着城市化进程的加快,城市规划和管理工作面临着前所未有的挑战,违章建筑的排查与处理成为了城市管理中的一项重要任务。传统的违章建筑排查方法依赖于人力巡查,效率低下且难以全面覆盖。为了解决这一问题,现代技术被引入到城市管理中,特别是影像处理、图像分类和......