当前位置: 首页 > news >正文

openGauss新特性 | 自动参数化执行计划缓存

目录

自动化参数执行计划缓存简介     

SQL参数化及约束条件

一般常量参数化示例     

总结


自动化参数执行计划缓存简介     

执行计划缓存用于减少执行计划的生成次数。openGauss数据库会缓存之前生成的执行计划,以便在下次执行该SQL时直接使用,可以避免反复执行,从而优化执行过程。

参数化过程是指把SQL查询中的常量变成变量的过程。同一条SQL语句在每次执行时可能会使用不同的参数,将这些参数做参数化处理,可以得到与具体参数无关的SQL字符串,并使用该字符串作为计划缓存的键值,用于在计划缓存中获取执行计划,从而达到参数不同的SQL能够共用相同计划的目标。

openGauss数据库的自动化参数方案是在语法分析树的基础上进行参数化,然后使用参数化后的语法分析树作为键值计划缓存中获取计划。

openGauss数据库基于自动参数化而获取执行计划的流程如下图所示:

图片

SQL参数化及约束条件

在openGauss 数据库中, 某些场景中SQL不能参数化,及约束条件如下:

  • 仅支持IUD(insert, Update, Delete)三类DML

  • 仅支持Simple Query Protocal, 不支持Extended Query Protocol

1. Simple Query Protacol: 例:gsql client

2. Extended Quey Protocal: 例:JDBC client中的PreparedStatement

  • 不支持含returning关键词,不支持with clause,不支持hint,不支持子查询,不支持order by,不支持limit, 不支持函数,不支持含collate关键词,不支持type cast,不支持使用NULL关键词,不支持lgnore。

一般常量参数化示例     

openGauss使用自动化参数执行计划缓存需要开启自动化参数

SQLset enable_query_parameterization=on;

执行如下简单DML语句,自动化参数可以将 delete from table_btree where id = 250192 参数化为 delete from table_btree where id = $1,后续执行SQL便可以以自动化参数后的字符串为键值从缓存中取到执行计划。​​​​​​​

sqldelete from table_btree where id = 250192;delete from table_btree where id = 484195;delete from table_btree where id = 595524;delete from table_btree where id = 982023;

总结

openGauss的自动化参数执行计划缓存特性目前支持simple query场景下的简单DML语句,使得非参数化语句能够 重复利用执行计划,减少执行计划的生成代价。对基础算子场景的性能提升具有很大帮助。

相关文章:

  • 三层架构与分层解耦:深入理解IOC与DI设计模式
  • 微信小程序实现table样式,自带合并行合并列
  • 网络中的基本概念
  • 虚幻引擎 Anim To Tex| RVT | RT
  • CTF web入门之文件上传
  • 【STL】set
  • 判断一棵树是不是另一棵树的子树
  • 容器实战高手课笔记 ----来源《极客时间》
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第一模块·认知转型篇 —— 第二章 开发环境全景搭建:从gcc到JVM的范式迁移
  • 聊聊价值投资
  • 【Qt】Qt Creator开发基础:项目创建、界面解析与核心概念入门
  • Ubuntu24安装Docker详细教程
  • iPhone相册导出到电脑的完整指南
  • 程序化广告行业(85/89):多行业广告投放资质全解析
  • C# visionpro联合编程中遇到的问题之 R6025 - pure virtual function call
  • C语言编译预处理1
  • LR(0)
  • DAP-seq(DNA亲和纯化测序)
  • 数据库原理及应用mysql版陈业斌实验三
  • Kafka使用方式与底层原理解析
  • 江西省国资委原副主任李键主动向组织交代问题,接受审查调查
  • 上海首个航空前置货站落户松江综合保税区,通关效率可提升30%
  • 大学2025丨专访北邮校长徐坤:工科教育要真正回归工程本质
  • 酒店保洁员调包住客港币,海南官方通报:成立调查组赴属地调查
  • 哈马斯官员:只要以军持续占领,哈马斯就不会放下武器
  • 著名统计学家、北京工业大学应用数理学院首任院长王松桂逝世