openGauss学习笔记-245 openGauss性能调优-SQL调优-典型SQL调优点-算子级调优

文章目录

    • openGauss学习笔记-245 openGauss性能调优-SQL调优-典型SQL调优点-算子级调优
      • 245.1 算子级调优
        • 245.1.1 算子级调优介绍
        • 245.1.2 算子级调优示例

openGauss学习笔记-245 openGauss性能调优-SQL调优-典型SQL调优点-算子级调优

SQL调优是一个不断分析与尝试的过程:试跑Query,判断性能是否满足要求;如果不满足要求,则通过查看执行计划分析原因并进行针对性优化;然后重新试跑和优化,直到满足性能目标。

245.1 算子级调优

245.1.1 算子级调优介绍

一个查询语句要经过多个算子步骤才会输出最终的结果。由于个别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAIN ANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。

如下面的执行过程信息中,Hashagg算子的执行时间占总时间的:(51016-13535)/ 56476 ≈66%,此处Hashagg算子就是这个查询的瓶颈算子,在进行性能优化时应当优先考虑此算子的优化。

img

245.1.2 算子级调优示例

**示例1:**基表扫描时,对于点查或者范围扫描等过滤大量数据的查询,如果使用SeqScan全表扫描会比较耗时,可以在条件列上建立索引选择IndexScan进行索引扫描提升扫描效率。

openGauss=#  explain (analyze on, costs off) select * from store_sales where ss_sold_date_sk = 2450944;
 id |             operation          |       A-time        | A-rows | Peak Memory  | A-width
----+--------------------------------+---------------------+--------+--------------+---------
  1 | ->  Streaming (type: GATHER)   | 3666.020            |   3360 | 195KB        |
  2 |    ->  Seq Scan on store_sales | [3594.611,3594.611] |   3360 | [34KB, 34KB] |
(2 rows)

 Predicate Information (identified by plan id) 
-----------------------------------------------
   2 --Seq Scan on store_sales
         Filter: (ss_sold_date_sk = 2450944)
         Rows Removed by Filter: 4968936
openGauss=#  create index idx on store_sales_row(ss_sold_date_sk);
CREATE INDEX
openGauss=#  explain (analyze on, costs off) select * from store_sales_row where ss_sold_date_sk = 2450944;
 id |                   operation                    |     A-time      | A-rows | Peak Memory  | A-width
----+------------------------------------------------+-----------------+--------+--------------+----------
  1 | ->  Streaming (type: GATHER)                   | 81.524          |   3360 | 195KB        |
  2 |    ->  Index Scan using idx on store_sales_row | [13.352,13.352] |   3360 | [34KB, 34KB] |
(2 rows)

上述例子中,全表扫描返回3360条数据,过滤掉大量数据,在ss_sold_date_sk列上建立索引后,使用IndexScan扫描效率显著提高,从3.6秒提升到13毫秒。

示例2: 如果从执行计划中看,两表join选择了NestLoop,而实际行数比较大时,NestLoop Join可能执行比较慢。如下的例子中NestLoop耗时181秒,如果设置参数enable_mergejoin=off关掉Merge Join,同时设置参数enable_nestloop=off关掉NestLoop,让优化器选择HashJoin,则Join耗时提升至200多毫秒。

img

img

示例3:通常情况下Agg选择HashAgg性能较好,如果大结果集选择了Sort+GroupAgg,则需要设置enable_sort=off,HashAgg耗时明显优于Sort+GroupAgg。

img

img

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

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

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

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sora 发布的意义能和 ChatGPT 相比吗?

个人觉得,Sora 的发布弥补了ChatGPT语言模型在视频内容领域的不足,简单来说,这两个模型均有自己的优势,ChatGPT是一种语言模型,可以理解和解释自然语言,而Sora是文字到视频转化的应用,将文本内容…

Python库Gym:打开机器学习与强化学习的大门

Python库Gym:打开机器学习与强化学习的大门 强化学习作为人工智能领域的重要分支,已经在各种领域展现出了巨大的潜力。为了帮助开发者更好地理解和应用强化学习算法,Python库Gym应运而生。Gym提供了一个开放且易于使用的环境,供开…

String类型详解

1. Java为何要创造String类 在C语言中,是没有String这个类型的,通常使用字符数组中存放一个个字符,再加上最后一个\0来表示/存放一个字符串.也可以使用一个字符指针指向字符串的首元素,直到遇到\0停止,再加上C语言头文件string.h中封装的函数,对于字符串的操作已经够用了. Java…

VUE3 十种组件通信的方式(附详细代码)

props 用途&#xff1a;可以实现父子组件、子父组件、甚至兄弟组件通信 父组件 <template><div><Son :money"money"></Son></div> </template><script setup lang"ts"> import Son from ./son.vue import { re…

企业公关新闻稿怎么写?媒介盒子揭秘

企业公关稿的目的在于宣传企业&#xff0c;化解企业负面舆论&#xff0c;想要写好新闻稿需要企业有专业的素养&#xff0c;深厚的笔力才能将新闻稿写得让读者愿意看&#xff0c;又能塑造企业正面形象&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;企业公关新闻稿怎么写。…

全氟己酮灭火片是什么?盘点自动灭火片的优缺点

全氟己酮灭火片是什么&#xff1f;全氟己酮灭火片是一种新型灭火材料&#xff0c;通过特殊的纳米微胶囊压缩技术&#xff0c;将环保高效的全氟己酮灭火剂压缩存储成薄片状&#xff0c;一旦温度达到一定阙值或发生明火&#xff0c;内部的全氟己酮灭火剂就会突破薄膜材料喷射出来…

防火墙的原理和配置

“防火墙”一词起源于建筑领域&#xff0c;用来隔离火灾&#xff0c;阻止火势从一个区域蔓延到另一个区域。引入到通信领域&#xff0c;防火墙这一具体设备通常用于两个网络之间有针对性的、逻辑意义上的隔离。这种隔离是选择性的&#xff0c;隔离“火”的蔓延&#xff0c;而又…

智慧物业是什么?房地产智慧物业大屏怎么做?

随着科技的飞速发展&#xff0c;智能化、信息化已经成为社会进步的显著标志。在这一背景下&#xff0c;智慧物业应运而生&#xff0c;成为现代社区管理的重要工具。它不仅提升了物业管理的效率&#xff0c;也为居民提供了更加便捷、安全的生活环境。 一、智慧物业是什么 智慧…

Vue+SpringBoot打造用户画像活动推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活动档案模块2.4 活动报名模块2.5 活动留言模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 数据流程设计3.4 E-R图设计 四、系统展示五、核心代码5.1 查询兴趣标签5.2 查询活动推荐…

C++中虚表是什么

定义 虚函数&#xff08;Virtual Function&#xff09; 定义&#xff1a;类中使用virtual 关键字修饰的函数 叫做虚函数 语法&#xff1a; class Base { public:virtual void show() { cout << "Base show" << endl; } }; 虚函数表&#xff08;Virtual…

软考 网工 每日学习打卡 2024/3/18

学习内容 第8章 网络安全 本章主要讲解网络安全方面的基础知识和应用技术。针对考试应该掌握诸如数据加密、报文认 证、数字签名等基本理论&#xff0c;在此基础上深入理解网络安全协议的工作原理&#xff0c;并能够针对具体的 网络系统设计和实现简单的安全解决方案。 本章共有…

SpringBoot项目前端Vue访问后端(图片静态资源) 配置

静态资源配置 Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Value("${file.save-path}")private String fileSavePath;Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//映射本地文件夹registry…

NineData推出SQL开发专业版:10数据源永久免费,助力企业数据库研发提效!

在数据库开发领域&#xff0c;选择合适的工具和服务至关重要。而NineData作为新一代的云原生智能数据管理平台&#xff0c;提供了数据复制、SQL 开发、数据备份以及数据对比等多种功能&#xff0c;帮助用户轻松实现混合云、多云数据源的统一管理。采用SaaS模式&#xff0c;无需…

QML入门

First Step with QML 每个QML文件都包含两部分&#xff1a;一个import部分和一个对象声明部分。对用户界面来说&#xff0c;最常用的类型和函数都定义在QtQuick 这个模块里。 编写HelloWorld 先从编程世界起点HelloWorld开始&#xff0c;这里&#xff0c;我们先不建立Qt Pro…

linux单机部署hadoop

1.下载安装包 https://archive.apache.org/dist/hadoop/common/ 2.上传压缩 3.修改配置文件 1)设置JDK的路径 cd /usr/local/software/hadoop-3.1.3/etc/hadoop vi hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64/ 查看…

Zynq ultrascale+ 中断方式整理

摘要&#xff1a;目前一共整理三种中断&#xff0c;主要整理三种中断&#xff08;AXI_GPIO、EMIO、PL-PS_irq&#xff09;在PL和PS侧的使用 一、AXI_GPIO 这个IP可以用作单bit的输入和输出&#xff1b;也可以单独作为中断或者复位等使用&#xff1b; 使用AXI GPIO IP&#xff…

CSS案例-3.背景练习

效果1 用背景加入图标 效果2 将图片设为页面背景,图片主体在中间 效果3 鼠标放到导航栏上会变颜色 知识点 CSS背景 属性 描述 取值 background 复合属性 看独立属性 background-color 背景颜色 <color> background-image 背景图像 none | url background-repeat 背景…

分享几个适合大学生的副业兼职,大家可以根据自己的情况选择

有很多大学生想找一份兼职&#xff0c;既能打发时间&#xff0c;还能赚一些零花钱。一方面提升自己的生活质量&#xff0c;另一方面为家里减轻一些负担。同时也可以通过兼职来锻炼自己的能力&#xff0c;增加社会经验。今天跟大家分享几个适合大学生的副业兼职&#xff0c;大家…

fastjson反序列化-1.2.24漏洞利用与分析

0x01 利用条件 通过对fastjson基础知识的学习和反序列化流程的分析&#xff0c;发现它与我们之前学的常规的反序列化又不太一样。fastjson自己定义了一套反序列化规则&#xff0c;它不需要反序列化的类去继承Serializable接口&#xff0c;也不需要找readObject函数作为入口。相…

视觉SLAM理论到实践系列:补充——泊松公式证明

视觉SLAM理论到实践系列文章 下面是《视觉SLAM十四讲》学习笔记的系列记录的总链接&#xff0c;本人发表这个系列的文章链接均收录于此 视觉SLAM理论到实践系列文章链接 下面是专栏地址&#xff1a; 视觉SLAM理论到实践专栏 文章目录 视觉SLAM理论到实践系列文章视觉SLAM理论…