openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint

文章目录

    • openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint
      • 260.1 功能描述
      • 260.2 语法格式
      • 260.3 示例

openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint

260.1 功能描述

通过predpush_same_level Hint来指定同层表或物化视图之间参数化路径生成。

260.2 语法格式

predpush_same_level(src, dest)
predpush_same_level(src1 src2 ..., dest)

img 说明: 本参数仅在rewrite_rule中的predpushforce选项打开时生效。

260.3 示例

准备参数和表及索引:

openGauss=# set rewrite_rule = 'predpushforce';
SET
openGauss=# create table t1(a int, b int);
CREATE TABLE
openGauss=# create table t2(a int, b int);
CREATE TABLE
openGauss=# create index idx1 on t1(a);
CREATE INDEX
openGauss=# create index idx2 on t2(a);
CREATE INDEX

执行语句查看计划:

openGauss=# explain select * from t1, t2 where t1.a = t2.a;
                            QUERY PLAN
------------------------------------------------------------------
 Hash Join  (cost=27.50..56.25 rows=1000 width=16)
   Hash Cond: (t1.a = t2.a)
   ->  Seq Scan on t1  (cost=0.00..15.00 rows=1000 width=8)
   ->  Hash  (cost=15.00..15.00 rows=1000 width=8)
         ->  Seq Scan on t2  (cost=0.00..15.00 rows=1000 width=8)
(5 rows)

可以看到t1.a = t2.a条件过滤在Join上面,此时可以通过predpush_same_level(t1, t2)将条件下推至t2的扫描算子上:

openGauss=# explain select /*+predpush_same_level(t1, t2)*/ * from t1, t2 where t1.a = t2.a;
                             QUERY PLAN
---------------------------------------------------------------------
 Nested Loop  (cost=0.00..335.00 rows=1000 width=16)
   ->  Seq Scan on t1  (cost=0.00..15.00 rows=1000 width=8)
   ->  Index Scan using idx2 on t2  (cost=0.00..0.31 rows=1 width=8)
         Index Cond: (a = t1.a)
(4 rows)

img 须知:

  • predpush_same_level可以指定多个src,但是所有的src必须在同一个条件中。
  • 如果指定的src和dest条件不存在,或该条件不符合参数化路径要求,则本hint不生效。

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

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

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

图片

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

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

相关文章

linux下如何查看防火墙状态

systemctl status firewalld (看防火墙进程) cat /etc/selinux/config (看是否启用linux安全模式)

【Python】控制台进度条

在Python开发中,有时需要向用户展示一个任务的进度,以提供更好的交互体验。下面我将展示如何使用Python来创建一个简单的控制台进度条。 效果: 代码: import time import sys def print_progress_bar(completed, total, length…

蓝桥杯省赛冲刺(3)广度优先搜索

广度优先搜索(Breadth-First Search, BFS)是一种在图或树等非线性数据结构中遍历节点的算法,它从起始节点开始,按层级逐步向外扩展,即先访问离起始节点最近的节点,再访问这些节点的邻居,然后是邻…

Kyligence 发布企业级 AI 解决方案,Data + AI 落地迈向新阶段

4月11日,Kyligence 2024 数智论坛暨春季发布会成功召开。Kyligence 正式发布全新的企业级 AI 解决方案,基于服务金融、零售、制造、医药等行业领先客户的落地实践,Kyligence 为企业提供准确、可靠、智能的 AI 指标平台一站式解决方案&#x…

头歌-机器学习 第10次实验 逻辑回归

第1关:逻辑回归核心思想 任务描述 本关任务:根据本节课所学知识完成本关所设置的编程题。 相关知识 为了完成本关任务,你需要掌握: 什么是逻辑回归; sigmoid函数。 什么是逻辑回归 当一看到“回归”这两个字&a…

Harmony鸿蒙南向驱动开发-CLOCK接口使用

CLOCK,时钟是系统各个部件运行的基础,以CPU时钟举例,CPU 时钟是指 CPU 内部的时钟发生器,它以频率的形式工作,用来同步和控制 CPU 内部的各个操作。 CLOCK接口定义了完成CLOCK操作的通用方法集合,包括&…

五一出游 请带上我。必备全家桶。出游变成搬家。千里快递员,这样的人就不要带了。学习过后,你会使用这些句子了吗?

五一出游,即劳动节假期出游,需要准备的物品会根据旅行的目的地、天气状况、交通方式和个人习惯有所不同。以下是一个基本的全家桶必备物品清单: 一、 证件类: 身份证驾驶证(如果自驾)护照/港澳通行证/台…

递归、搜索与回溯算法:递归

递归 在解决⼀个规模为n的问题时,如果满⾜以下条件,我们可以使⽤递归来解决: a. 问题可以被划分为规模更⼩的⼦问题,并且这些⼦问题具有与原问题相同的解决⽅法。 b. 当我们知道规模更⼩的⼦问题(规模为 n - 1&…

MySQL事务、主从、分库分表常见面试题

文章目录 1.事务的特性2.并发事务问题,如何解决,默认隔离级别3.undo log和redo log的区别4.事务中的隔离性是如何保证的(解释一下MVCC)5.主从同步原理6.分库分表 1.事务的特性 2.并发事务问题,如何解决,默认…

Windows部署ChatGLM3步骤

一、环境要求 硬件 内存:> 16GB 显存: > 13GB(4080 16GB) 软件 python 版本推荐3.10 - 3.11 transformers 库版本推荐为 4.36.2 torch 推荐使用 2.0 及以上的版本,以获得最佳的推理性能 二、部署步骤 1、新建pytho…

无缝集成:使用Spring Boot和Vue实现头像上传与回显功能

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

乡村振兴多元共治,共绘乡村新蓝图:政府引领、企业助力、村民参与

乡村振兴是一项复杂而艰巨的任务,需要从多个角度进行考虑。以下是从不同身份出发对乡村振兴建设的思考: 1、政府领导的角度: 政府是乡村振兴的主要推动者和组织者。在制定和实施乡村振兴战略时,政府需要注重规划引领,科…

【webrtc】源码下载与编译

目录 下载 下依赖 内存需求 !! 参考文章 : 下载 (1) windows ,centos上都会报错 (2) ubuntu A : 在git上设置代理 B fetch通过 ubuntu的界面 proxy设置了代理 这将会拉取webRTC源码,且额外加了a…

群晖虚拟机搭建Synology Drive并实现Obsidian笔记异地多端同步

文章目录 一、简介软件特色演示: 二、使用免费群晖虚拟机搭建群晖Synology Drive服务,实现局域网同步1 安装并设置Synology Drive套件2 局域网内同步文件测试 三、内网穿透群晖Synology Drive,实现异地多端同步Windows 安装 Cpolar步骤&#…

目标检测——瓷砖瑕疵检测数据集

一、重要性及意义 瓷砖瑕疵检测在瓷砖制造和质量控制过程中具有极其重要的地位,其重要性和意义主要体现在以下几个方面: 首先,瓷砖瑕疵检测是确保产品质量的关键环节。瓷砖作为家居装修中不可或缺的材料,其表面质量直接影响到装…

关于ABP 新增表,dbfirst模式

下面的代码是基于abp生成的项目,项目名:Store 1.在Domain结尾的项目中通过EF工具生成数据实体: Scaffold-DbContext Data Source服务器IP;Initial Catalog数据库;User Idsa;Password密码;EncryptFalse; Microsoft.EntityFrameworkCore.SqlS…

【React】React Hooks

useState useState 向组件中添加状态变量 状态是只读的,不可以直接修改 对于对象类型的状态变量,应该传递一个新的对象来更改 需要对象展开,并重新赋值,进行增加或者修改。 如果需要删除,则使用 filter。 import { …

Android MTK 屏下指纹的调试过程记录

Demo链接 -----> https://download.csdn.net/download/u011694328/89118346 一些品牌手机都有了屏下指纹的功能,还算是个比较新颖的功能,最近有项目需要使用屏下指纹, 使用的是汇顶(Goodix)的指纹方案&#xff0c…

学习笔记之——3DGS-SLAM系列代码解读

最近对一系列基于3D Gaussian Splatting(3DGS)SLAM的工作的源码进行了测试与解读。为此写下本博客mark一下所有的源码解读以及对应的代码配置与测试记录~ 其中工作1~5的原理解读见博客: 学习笔记之——3D Gaussian Splatting及其在SLAM与自动…

jupyter python paramiko 网络系统运维

概述 通过使用jupyter进行网络运维的相关测试 设备为H3C 联通性测试 import paramiko import time import getpass import re import os import datetimeusername "*****" password "*****" ip "10.32.**.**"ssh_client paramiko.SSHCli…