数据库的查询语句的处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品与流程

摘要: 本申请涉及云技术,尤其涉及一种数据库的查询语句的处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。背景技术:1、结构化查询语言(structured...
数据库的查询语句的处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品与流程

本申请涉及云技术,尤其涉及一种数据库的查询语句的处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。

背景技术:

1、结构化查询语言(structured query language,sql)允许用户以不同的方式表达相同的查询意图,一个复杂的逻辑可以通过嵌套子查询、公用表达式或多个连接来实现,这些表达方式虽然逻辑等价,但不同的查询语句可能导致对数据库的查询效率差异巨大。相关技术在对原始查询语句进行改写时应用的改写规则的执行顺序是固定的,无法适用于所有复杂查询语句,或错误地应用导致查询性能下降的改写规则,导致无法改写出最优的查询语句。

技术实现思路

1、本申请实施例提供一种数据库的查询语句的处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够动态生成适配于原始查询语句的高质量的目标规则序列。

2、本申请实施例的技术方案是这样实现的:

3、本申请实施例提供一种数据库的查询语句的处理方法,所述方法包括:

4、对原始查询语句和原始查询语句的统计信息进行编码,得到原始语句向量;

5、从案例库中获取与所述原始语句向量匹配的多个候选语句向量,将每个所述候选语句向量在所述案例库中关联的候选改写规则,组合为第一改写规则集合;

6、根据所述原始查询语句、所述统计信息和所述第一改写规则集合,构建提示词,其中,所述提示词用于指示基于所述统计信息,从所述第一改写规则集合中,按照先后执行顺序选取用于优化所述原始查询语句的多个目标改写规则;

7、基于所述提示词,调用预训练的语言模型生成目标规则序列,其中,所述目标规则序列包括按照所述先后执行顺序排列的所述多个目标改写规则。

8、上述方案中,获取所述数据库在执行所述第一改写样本查询语句时的第二性能指标参数,包括:

9、将所述第一改写样本查询语句发送给数据库,以使所述数据库执行所述第一改写样本查询语句;

10、当所述数据库执行完成所述第一改写样本查询语句时,调用性能检测工具,获取所述数据库执行所述第一改写样本查询语句的期间的第二性能指标参数,其中,所述第二性能指标参数包括以下至少之一:执行时间、扫描行数与返回行数的行数差异、输入/输出次数、处理器占用、内存占用、锁等待时间、临时表与排序。

11、本申请实施例提供一种数据库的查询语句的处理装置,所述装置包括:

12、编码模块,用于对原始查询语句和原始查询语句的统计信息进行编码,得到原始语句向量;

13、组合模块,用于从案例库中获取与所述原始语句向量匹配的多个候选语句向量,将每个所述候选语句向量在所述案例库中关联的候选改写规则,组合为第一改写规则集合;

14、构建模块,用于根据所述原始查询语句、所述统计信息和所述第一改写规则集合,构建提示词,其中,所述提示词用于指示基于所述统计信息,从所述第一改写规则集合中,按照先后执行顺序选取用于优化所述原始查询语句的多个目标改写规则;

15、生成模块,用于基于所述提示词,调用预训练的语言模型生成目标规则序列,其中,所述目标规则序列包括按照所述先后执行顺序排列的所述多个目标改写规则。

16、本申请实施例提供一种数据库的查询语句的处理方法,所述方法包括:

17、获取原始查询语句的目标规则序列,其中,所述目标规则序列包括多个目标改写规则;

18、按照所述目标规则序列中所述目标改写规则的先后顺序,逐个读取所述目标改写规则,根据读取的当前所述目标改写规则对所述原始查询语句进行改写,得到改写后查询语句;

19、响应于所述原始查询语句与所述改写后查询语句的语义相同,确定读取的当前所述目标改写规则验证通过,继续读取所述当前所述目标改写规则的下一个所述目标改写规则;

20、响应于所述多个目标改写规则均验证通过,确定所述目标规则序列的验证通过,将通过最后一个所述目标改写规则进行改写得到的改写后查询语句,作为通过所述目标规则序列进行改写最终得到的目标查询语句,以替代所述原始查询语句。

21、本申请实施例提供一种数据库的查询语句的处理装置,所述装置包括:

22、获取模块,用于获取原始查询语句的目标规则序列,其中,所述目标规则序列包括多个目标改写规则;

23、改写模块,用于按照所述目标规则序列中所述目标改写规则的先后顺序,逐个读取所述目标改写规则,根据读取的当前所述目标改写规则对所述原始查询语句进行改写,得到改写后查询语句;

24、确定模块,用于响应于所述原始查询语句与所述改写后查询语句的语义相同,确定读取的当前所述目标改写规则验证通过,继续读取所述当前所述目标改写规则的下一个所述目标改写规则;响应于所述多个目标改写规则均验证通过,确定所述目标规则序列的验证通过,将通过最后一个所述目标改写规则进行改写得到的改写后查询语句,作为通过所述目标规则序列进行改写最终得到的目标查询语句,以替代所述原始查询语句。

25、本申请实施例提供一种电子设备,所述电子设备包括:

26、存储器,用于存储计算机可执行指令或者计算机程序;

27、处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本申请实施例提供的数据库的查询语句的处理方法。

28、本申请实施例提供一种计算机可读存储介质,存储有计算机程序或者计算机可执行指令,用于被处理器执行时实现本申请实施例提供的数据库的查询语句的处理方法。

29、本申请实施例提供一种计算机程序产品,包括计算机程序或者计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的数据库的查询语句的处理方法。

30、本申请实施例具有以下有益效果:

31、根据对原始查询语句及统计信息进行编码得到的原始语句向量,从案例库中获取匹配的多个候选语句向量,可以精确地识别出案例库中与原始查询语句相似的候选语句向量,从而减少了因语义或表达差异导致的误匹配;

32、将每个候选语句向量在案例库中关联的候选改写规则,组合为第一改写规则集合,也就是说,可以从案例库中自动获取与候选语句向量关联的改写规则,无需人工干预,大大提高了改写规则生成的效率;

33、根据原始查询语句、统计信息和第一改写规则集合,构建提示词,以指示预训练的语言模型从第一改写规则集合中,选取用于改写原始查询语句的最合适的目标规则序列,通过语言模型的辅助,能够更加精确地识别和选择改写规则,减少了因人工操作可能出现的错误和遗漏,增强了改写过程的灵活性和适应性,从而能够自动生成适配于原始查询语句的高质量的目标规则序列。

1.一种数据库的查询语句的处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述从案例库中获取与所述原始语句向量匹配的多个候选语句向量,包括:

3.根据权利要求1所述的方法,其特征在于,所述将每个所述候选语句向量在所述案例库中关联的候选改写规则,组合为第一改写规则集合,包括:

4.根据权利要求1所述的方法,其特征在于,所述案例库是通过以下方式构建的:

5.根据权利要求4所述的方法,其特征在于,所述获取样本查询语句,包括:

6.根据权利要求4所述的方法,其特征在于,所述从多个改写规则子集确定对所述样本查询语句的性能指标参数有提升作用的有效改写规则子集,包括:

7.根据权利要求6所述的方法,其特征在于,所述获取所述数据库在执行所述样本查询语句时的第一性能指标参数,包括:

8.根据权利要求4所述的方法,其特征在于,所述从所述有效改写规则子集中确定对所述样本查询语句的性能指标参数有提升作用的样本改写规则,包括:

9.根据权利要求8所述的方法,其特征在于,所述创建所述有效改写规则子集的n个副本子集,包括:

10.根据权利要求1所述的方法,其特征在于,在所述基于所述提示词,调用预训练的语言模型生成目标规则序列之后,所述方法还包括:

11.根据权利要求10所述的方法,其特征在于,在所述将通过最后一个所述目标改写规则进行改写得到的改写后查询语句,作为通过所述目标规则序列进行改写最终得到的目标查询语句之后,所述方法还包括:

12.根据权利要求1所述的方法,其特征在于,在所述调用预训练的语言模型生成目标规则序列之后,所述方法还包括:

13.根据权利要求12所述的方法,其特征在于,所述响应于所述原始查询语句与所述改写后查询语句的语义相同,确定读取的当前所述目标改写规则验证通过,包括:

14.根据权利要求13所述的方法,其特征在于,所述确定所述第四查询计划树与所述第三查询计划树之间的差异区域,包括:

15.根据权利要求1所述的方法,其特征在于,所述对原始查询语句和原始查询语句的统计信息进行编码,得到原始语句向量,包括:

16.根据权利要求15所述的方法,其特征在于,所述将所述第一向量和所述第二向量进行融合,得到原始语句向量,包括:

17.一种数据库的查询语句的处理装置,其特征在于,所述装置包括:

18.一种电子设备,其特征在于,所述电子设备包括:

19.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至16任一项所述的数据库的查询语句的处理方法。

20.一种计算机程序产品,包括计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至16任一项所述的数据库的查询语句的处理方法。