openGauss学习笔记-247 openGauss性能调优-SQL调优关键参数调整

文章目录

    • openGauss学习笔记-247 openGauss性能调优-SQL调优关键参数调整
      • 247.1 SQL调优关键参数调整

openGauss学习笔记-247 openGauss性能调优-SQL调优关键参数调整

247.1 SQL调优关键参数调整

本节将介绍影响openGauss SQL调优性能的关键数据库主节点配置参数,配置方法参见配置运行参数

表 1 数据库主节点配置参数

参数/参考值描述
enable_nestloop=on控制查询优化器对嵌套循环连接(Nest Loop Join)类型的使用。当设置为“on”后,优化器优先使用Nest Loop Join;当设置为“off”后,优化器在存在其他方法时将优先选择其他方法。说明:如果只需要在当前数据库连接(即当前Session)中临时更改该参数值,则只需要在SQL语句中执行如下命令:SET enable_nestloop to off;此参数默认设置为“on”,但实际调优中应根据情况选择是否关闭。一般情况下,在三种join方式(Nested Loop、Merge Join和Hash Join)里,Nested Loop性能较差,实际调优中可以选择关闭。
enable_bitmapscan=on控制查询优化器对位图扫描规划类型的使用。设置为“on”,表示使用;设置为“off”,表示不使用。说明:如果只需要在当前数据库连接(即当前Session)中临时更改该参数值,则只需要在SQL语句中执行命令如下命令:SET enable_bitmapscan to off;bitmapscan扫描方式适用于“where a > 1 and b > 1”且a列和b列都有索引这种查询条件,但有时其性能不如indexscan。因此,现场调优如发现查询性能较差且计划中有bitmapscan算子,可以关闭bitmapscan,看性能是否有提升。
enable_hashagg=on控制优化器对Hash聚集规划类型的使用。
enable_hashjoin=on控制优化器对Hash连接规划类型的使用。
enable_mergejoin=on控制优化器对融合连接规划类型的使用。
enable_indexscan=on控制优化器对索引扫描规划类型的使用。
enable_indexonlyscan=on控制优化器对仅索引扫描规划类型的使用。
enable_seqscan=on控制优化器对顺序扫描规划类型的使用。完全消除顺序扫描是不可能的,但是关闭这个变量会让优化器在存在其他方法的时候优先选择其他方法。
enable_sort=on控制优化器使用的排序步骤。该设置不可能完全消除明确的排序,但是关闭这个变量可以让优化器在存在其他方法的时候优先选择其他方法。
rewrite_rule控制优化器是否启用LAZY_AGG和MAGIC_SET重写规则。
sql_beta_feature控制优化器是否启用。SEL_SEMI_POISSON/SEL_EXPR_INSTR/PARAM_PATH_GEN/RAND_COST_OPT/PAGE_EST_OPT/PARAM_PATH_OPT/NO_UNIQUE_INDEX_FIRST/JOIN_SEL_WITH_CAST_FUNC/CANONICAL_PATHKEY/INDEX_COST_WITH_LEAF_PAGES_ONLY/PARTITION_OPFUSION/A_STYLE_COERCE/PLPGSQL_STREAM_FETCHALL/PREDPUSH_SAME_LEVEL/PARTITION_FDW_ON/DISABLE_BITMAP_COST_WITH_LOSSY_PAGES/EXTRACT_PUSHDOWN_OR_CLAUSE测试功能。
var_eq_const_selectivity控制优化器是否使用直方图计算整型常量的选择率。
partition_page_estimation控制分区表页面是否通过剪枝结果进行页面估算优化,只包括分区表和local索引页面,不包括全局索引页面。估算公式为:估算后页面 = 分区表总页面 * (剪枝后分区数 / 总分区数)。
partition_iterator_elimination控制分区表在分区剪枝结果为一个分区时,是否通过消除分区迭代算子来提升执行效率。
enable_functional_dependency控制函数依赖统计信息的使用。设置为“on”,开启两个功能:执行ANALYZE生成的多列统计信息包含函数依赖统计信息。计算选择率会使用函数依赖统计信息。设置为“off”,此两个功能不生效:执行ANALYZE生成的多列统计信息不包含函数依赖统计信息。计算选择率不会使用函数依赖统计信息。说明:函数依赖(Functional Dependency)的概念来自于关系数据库范式(Normal Form),表示属性间的函数关系。函数依赖统计信息,对此概念进行了扩展,表示满足函数关系的数据量占总数据量的比例。函数依赖统计信息是多列统计信息的一种,可以用于提升选择率估算的准确率。函数依赖统计信息适用于形如“where a = 1 and b = 1”的格式,要求a和b均是同一个表的属性,约束条件为等式约束,约束条件用AND连接,约束条件至少为两个。
enable_seqscan_fusion控制seqscan底噪消除是否打开。

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

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

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

图片

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

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

相关文章

【JVM】为对象分配内存的方式,死亡对象判断方法

目录 为对象分配内存的方式 指针碰撞 空闲列表 TLAB 死亡对象判断方法 引用计数法 可达性分析算法 为对象分配内存的方式 指针碰撞 一般情况下,JVM的对象都放在堆内存中(发生逃逸分析除外)。当类加载检查通过后,JVM为新生…

大模型-什么是Fine-tuning

推荐一篇比较透彻的介绍 对于深度学习模型中的 Fine-tuning(微调)操作,以下是详细介绍和原理说明: 什么是 Fine-tuning(微调)? Fine-tuning 是指在一个已经训练好的模型基础上,通…

在Spring Boot中如何处理跨域请求(CORS)?

什么是跨域? 跨域(Cross-Origin Resource Sharing,CORS)是一种机制,它允许在 Web 页面上运行的脚本能够请求从不同源(域名、协议或端口)的资源。在浏览器安全策略中,有一条称为同源…

python 中怎样使用任意关键词实参?

在 Python 中,可以使用任意数量的关键字实参和任意关键字实参,也被称为 kwargs。 这允许你在函数调用时传递任意数量的关键字参数。 你可以使用任意数量的关键字实参(Keyword Arguments)和任意关键字实参(Arbitrary Ke…

sonar接入maven项目

1、介绍 sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告。他有如下特性 (1) 检查代码是否遵循编程标准:如命…

走迷宫---dfs在矩阵图里的应用模板

题目描述如下: dfs算法解决迷宫问题的一个标准模板 ,通过递归与回溯暴力遍历所有能走的点,并比较找出所有可行方案的最优解 解决这道问题的核心思想和组合数如出一辙,可以说是组合数的升级版 结合注释看dfs更清晰易懂&#xff0…

springcloud-Eureka注册中心

如果你要理解这个技术博客博客专栏 请先学习以下基本的知识: 什么是微服务什么是服务拆分什么是springcloud Springcloud为微服务开发提供了一个比较泛用和全面的解决框架,springcloud继承了spring一直以来的风格——不重复造轮子,里面很多的…

测试平台——前端框架

一、创建vue项目 npm init vitelatest web_class wylWYLdeMacBook-Air testplatform % npm init vitelatest web_class ✔ Select a framework: › Vue ✔ Select a variant: › JavaScriptScaffolding project in /Users/wyl/workspace/testplatform/web_class...Done. Now…

IoT 物联网场景中如何应对安全风险?——青创智通

工业物联网解决方案-工业IOT-青创智通 ​随着物联网(IoT)技术的快速发展,越来越多的设备、系统和应用被连接到互联网上,从而构建了一个庞大的物联网生态系统。然而,这种连接性也带来了前所未有的安全风险。在物联网场景…

Android Studio实现内容丰富的安卓校园公告助手

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 093校园助手 1.开发环境 android stuido3.6 jak1.8 eclipse mysql tomcat 2.功能介绍 具体往下看第三节,功能截图 安卓端: 1.注册登录 2.校园公告列表…

微信小程序执行环境(微信端)与浏览器环境有何不同

微信小程序执行环境与浏览器环境有很多不同之处,以下是一些例子: 全局对象: 浏览器环境中的 JavaScript 有一个全局对象 window,而微信小程序中的 JavaScript 没有 window 对象,取而代之的是 wx 对象,wx …

持续集成平台 02 jenkins plugin 插件

拓展阅读 Devops-01-devops 是什么? Devops-02-Jpom 简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件 代码质量管理 SonarQube-01-入门介绍 项目管理平台-01-jira 入门介绍 缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业…

系统架构设计师考试-专业英语

词汇含义access存取active-matrix主动矩阵adapter适配器,转换器adapter cards适配卡agents代理analog signals模拟信号animations动画applets程序arithmetic operations算术运算array数组,阵列assembly汇编,安装,装配asynchronous…

C#面:简述 LINQ

C# 中的 LINQ(Language Integrated Query)是集成查询语言,它允许我们在编写代码时使用类似于 SQL 的查询语法来查询和操作各种数据源,如集合、数据库、XML 等。 LINQ 的主要特点包括: 统一的查询语法:LIN…

【pip 安装pymssql报错】 Failed to build pymssql

在使用pip install pymssql安装pymssql时报如下图的错误&#xff1b; 报错截图 2&#xff09;查找资料说pip<3.0版本 &#xff0c;我也试了&#xff0c;不行。 你们也可以试一试&#xff1a;pip install"pymssql<3.0" 3&#xff09;我的成功方式&#xff1…

全量知识系统 概要设计(SmartChat回复)

以下是根据我给出的 系统概要 “提要和纪要”&#xff0c;SmartChat给出的概要设计。我给出的“提要和纪要”可参考链接&#xff1a; https://blog.csdn.net/ChuanfangChen/article/details/136861822 -------------------------------- 概要设计文档 1. 简介 全量知识系统…

浅谈 电脑和车的对比

https://www.zhihu.com/question/547115488 电脑CPU与汽车发动机有哪些相同点与不同点&#xff1f; - 知乎 就想机械硬盘一样 我们的技术可能达不到 但是我们可以弯道超车 比如长江存储的SSD可以取代 以前的机械硬盘

流畅的 Python 第二版(GPT 重译)(八)

第十五章&#xff1a;关于类型提示的更多内容 我学到了一个痛苦的教训&#xff0c;对于小程序来说&#xff0c;动态类型很棒。对于大型程序&#xff0c;你需要更加纪律严明的方法。如果语言给予你这种纪律&#xff0c;而不是告诉你“嗯&#xff0c;你可以做任何你想做的事情”&…

JavaScript:TypeScript网上笔记总结

文章目录 1:基础类型数值型 number字符串类型 string布尔类型 boolean数组类型 Array元组 Tuple任意类型 anyvoid&#xff1a;与any类型相反&#xff0c;表示没有类型null 、undefined类型never类型枚举类型类型断言类型推论&#xff5c;类型别名 2:接口3:类&#xff08;不咋用…

WordPress Wholesale Market 插件 任意文件读取漏洞复现

0x01 产品简介 WordPress plugin Wholesale Market 是一个woocommerce扩展插件&#xff0c;使您的商店能够创建批发用户&#xff0c;并通过设置产品的批发价格。 0x02 漏洞概述 WordPress plugin Wholesale Market 2.2.1之前版本存在路径遍历漏洞&#xff0c;该漏洞源于没有…