System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种在openGauss数据库中快速生成执行计划的方法和系统技术方案_技高网

一种在openGauss数据库中快速生成执行计划的方法和系统技术方案

技术编号:41283248 阅读:7 留言:0更新日期:2024-05-11 09:32
本发明专利技术涉及数据库查询技术领域,提供一种在openGauss数据库中快速生成执行计划的方法和系统,包括:在语义分析阶段,根据执行的SQL语句生成查询树,判断执行的SQL语句是否符合典型场景条件;当执行的SQL语句符合典型场景条件,对根据执行的SQL语句生成的查询树进行快速生成计划标记;在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树。本发明专利技术在openGauss数据库中快速生成执行计划的方法和系统,可以减少典型场景在查询优化阶段的各类资源开销,包括CPU计算次数,数据库文件访问次数,代价计算次数等,优化目前的计划生成速度,从而提升整体执行性能。

【技术实现步骤摘要】

本专利技术涉及数据库查询,尤其涉及一种在opengauss数据库中快速生成执行计划的方法和系统。


技术介绍

1、在数据库中,执行sql语句时进行查询优化是一个十分重要的步骤,决定了数据库在执行阶段如何进行查询的实际执行。在opengauss数据库中,数据库与客户端使用libpq协议进行通信。在libpq协议中,通过数据库与客户端的报文中的首字母的不同,区分客户端对数据库不同的查询行为,其中,首字母为q的通信报文类型被大量使用。sql语句在数据库的执行过程中,simplequery需要进行词法语法解析,语义分析,查询优化,计划执行等多个步骤。在实际应用中,查询优化的耗时占用较多,导致整体性能下降。

2、因此,如何提供一种提高计划生成效率的方法,加速sql语句执行的整体性能,成为亟待解决的技术问题。


技术实现思路

1、有鉴于此,为了克服现有技术的不足,本专利技术旨在提供一种在opengauss数据库中快速生成执行计划的方法和系统。

2、根据本专利技术的第一方面,提供一种在opengauss数据库中快速生成执行计划的方法,该方法包括:

3、在语义分析阶段,根据执行的sql语句生成查询树,判断执行的sql语句是否符合典型场景条件;

4、当执行的sql语句符合典型场景条件,对根据执行的sql语句生成的查询树进行快速生成计划标记;

5、在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树。

6、优选地,本专利技术在opengauss数据库中快速生成执行计划的方法中,在语义分析阶段,根据执行的sql语句生成查询树,包括:通过对执行的sql语句进行词法和语法解析,获得的语法树,通过对获得的语法树进行语义分析,获得查询树。

7、优选地,本专利技术在opengauss数据库中快速生成执行计划的方法中,判断执行的sql语句是否符合典型场景条件,包括:

8、识别执行的sql语句的类型,当所述sql语句为insert类型,检查所述sql语句对应插入数据的目标表数量、select类型子句的数量、on duplicate key update类型子句的数量以及对应查询树中表达式的类型;

9、当所述sql语句对应插入数据的目标表数量为1,select类型子句的数量和onduplicate key update类型子句的数量为0,且对应查询树中表达式的类型均为非易失性表达式,将执行的sql语句判定为符合典型场景条件。

10、优选地,本专利技术在opengauss数据库中快速生成执行计划的方法中,判断执行的sql语句是否符合典型场景条件,包括:

11、识别执行的sql语句的类型,当所述sql语句为select类型,检查所述sql语句对应查询的目标数量、集合操作数量以及对应查询树中表达式的类型;

12、当所述sql语句对应查询的目标数量为1,集合操作的数量为0,且对应查询树中表达式的类型均为非易失性表达式,将执行的sql语句判定为符合典型场景条件。

13、优选地,本专利技术在opengauss数据库中快速生成执行计划的方法中,当执行的sql语句符合典型场景条件,对根据执行的sql语句生成的查询树进行快速生成计划标记,包括:对所有sql语句对应的查询树进行递归遍历,对符合典型场景条件的sql语句生成的查询树进行快速生成计划标记。

14、优选地,本专利技术在opengauss数据库中快速生成执行计划的方法中,在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树,包括:在查询优化阶段,当检索到带有快速生成计划标记的查询树,跳过查询优化阶段,进入计划树生成阶段,根据检索的带有快速生成计划标记的查询树生成计划树。

15、优选地,本专利技术在opengauss数据库中快速生成执行计划的方法中,在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树,还包括:在查询优化阶段,当未检索到带有快速生成计划标记的查询树,在查询优化阶段后进入计划树生成阶段,根据查询树生成计划树。

16、根据本专利技术的第二方面,提供一种在opengauss数据库中快速生成执行计划的系统,该系统包括执行计划生成服务端,用于:在语义分析阶段,根据执行的sql语句生成查询树,判断执行的sql语句是否符合典型场景条件;当执行的sql语句符合典型场景条件,对根据执行的sql语句生成的查询树进行快速生成计划标记;在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树。

17、优选地,本专利技术在opengauss数据库中快速生成执行计划的系统中,执行计划生成服务端,包括:

18、典型场景条件判断模块,用于在语义分析阶段,根据执行的sql语句生成查询树,判断执行的sql语句是否符合典型场景条件;

19、生成计划标记模块,用于当执行的sql语句符合典型场景条件,对根据执行的sql语句生成的查询树进行快速生成计划标记;

20、计划树生成模块,用于在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树。

21、根据本专利技术的第三方面,提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本专利技术第一方面所述的方法。

22、本专利技术在opengauss数据库中快速生成执行计划的方法和系统,可以减少典型场景在查询优化阶段的各类资源开销,包括cpu计算次数,数据库文件访问次数,代价计算次数等,优化目前的计划生成速度,从而提升整体执行性能。

本文档来自技高网...

【技术保护点】

1.一种在openGauss数据库中快速生成执行计划的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的在openGauss数据库中快速生成执行计划的方法,其特征在于,在语义分析阶段,根据执行的SQL语句生成查询树,包括:通过对执行的SQL语句进行词法和语法解析,获得的语法树,通过对获得的语法树进行语义分析,获得查询树。

3.根据权利要求1所述的在openGauss数据库中快速生成执行计划的方法,其特征在于,判断执行的SQL语句是否符合典型场景条件,包括:

4.根据权利要求1所述的在openGauss数据库中快速生成执行计划的方法,其特征在于,判断执行的SQL语句是否符合典型场景条件,包括:

5.根据权利要求1所述的在openGauss数据库中快速生成执行计划的方法,其特征在于,当执行的SQL语句符合典型场景条件,对根据执行的SQL语句生成的查询树进行快速生成计划标记,包括:对所有SQL语句对应的查询树进行递归遍历,对符合典型场景条件的SQL语句生成的查询树进行快速生成计划标记。

6.根据权利要求1所述的在openGauss数据库中快速生成执行计划的方法,其特征在于,在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树,包括:在查询优化阶段,当检索到带有快速生成计划标记的查询树,跳过查询优化阶段,进入计划树生成阶段,根据检索的带有快速生成计划标记的查询树生成计划树。

7.根据权利要求1所述的在openGauss数据库中快速生成执行计划的方法,其特征在于,在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树,还包括:在查询优化阶段,当未检索到带有快速生成计划标记的查询树,在查询优化阶段后进入计划树生成阶段,根据查询树生成计划树。

8.一种在openGauss数据库中快速生成执行计划的系统,其特征在于,所述系统包括执行计划生成服务端,用于:在语义分析阶段,根据执行的SQL语句生成查询树,判断执行的SQL语句是否符合典型场景条件;当执行的SQL语句符合典型场景条件,对根据执行的SQL语句生成的查询树进行快速生成计划标记;在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树。

9.根据权利要求8所述的在openGauss数据库中快速生成执行计划的系统,其特征在于,执行计划生成服务端,包括:

10.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种在opengauss数据库中快速生成执行计划的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的在opengauss数据库中快速生成执行计划的方法,其特征在于,在语义分析阶段,根据执行的sql语句生成查询树,包括:通过对执行的sql语句进行词法和语法解析,获得的语法树,通过对获得的语法树进行语义分析,获得查询树。

3.根据权利要求1所述的在opengauss数据库中快速生成执行计划的方法,其特征在于,判断执行的sql语句是否符合典型场景条件,包括:

4.根据权利要求1所述的在opengauss数据库中快速生成执行计划的方法,其特征在于,判断执行的sql语句是否符合典型场景条件,包括:

5.根据权利要求1所述的在opengauss数据库中快速生成执行计划的方法,其特征在于,当执行的sql语句符合典型场景条件,对根据执行的sql语句生成的查询树进行快速生成计划标记,包括:对所有sql语句对应的查询树进行递归遍历,对符合典型场景条件的sql语句生成的查询树进行快速生成计划标记。

6.根据权利要求1所述的在opengauss数据库中快速生成执行计划的方法,其特征在于,在查询优化阶段,当检索到带有快速生成计划标记的查询树,根据检索的带有快速生成计划标记的查询树生成计划树,包括:在查询优化阶段,当检索到带...

【专利技术属性】
技术研发人员:陈健华何小栋
申请(专利权)人:广州海量数据库技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1