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

摘要: 本申请涉及数据库,尤其涉及一种数据库的查询语句的处理方法、装置、设备、存储介质及程序产品。背景技术:1、在数据库查询优化中,机器学习方案常被用于提升查询语句的执...
数据库的查询语句的处理方法、装置、设备、存储介质及程序产品与流程

本申请涉及数据库,尤其涉及一种数据库的查询语句的处理方法、装置、设备、存储介质及程序产品。

背景技术:

1、在数据库查询优化中,机器学习方案常被用于提升查询语句的执行计划的选择精度。相关技术中,为适配不同查询特征,为每个查询模板单独建模,但是随着业务的增长,查询模板量也激增,相应的模型数量也爆炸式增长,不仅导致设备资源的浪费,还因模型过多引起训练数据分散,使得模型准确性下降,从而导致执行计划的选择精度降低,影响了数据库查询的性能。

技术实现思路

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.一种数据库的查询语句的处理方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述对所述数据库的多个查询模板进行分组,得到多个查询模板组,包括:

3.如权利要求2所述的方法,其特征在于,所述对所述多个数据库查询语句进行聚类处理,得到多个聚类簇,包括:

4.如权利要求2所述的方法,其特征在于,所述基于所述聚类簇中的至少两个所述数据库查询语句关联的所述查询模板,构建所述查询模板组,包括:

5.如权利要求1所述的方法,其特征在于,所述从待执行的查询语句中,提取所述查询语句的第一查询模板,包括:

6.如权利要求1所述的方法,其特征在于,所述获取所述第一查询模板关联的多个执行计划之前,所述方法还包括:

7.如权利要求6所述的方法,其特征在于,所述生成每个所述目标查询语句各自的n个语句候选计划,包括:

8.如权利要求7所述的方法,其特征在于,所述基于所述目标查询语句,确定每个所述数据表的优先排列概率,包括:

9.如权利要求6所述的方法,其特征在于,所述方法还包括:

10.如权利要求6所述的方法,其特征在于,所述方法还包括:

11.如权利要求1所述的方法,其特征在于,所述基于所述查询语句和所述多个执行计划中的任意两个执行计划,调用所述第一查询模板组关联的所述机器学习模型进行预测,得到预测结果,包括:

12.如权利要求11所述的方法,其特征在于,所述对所述多个执行计划中的任意两个执行计划分别进行特征提取,得到两个执行计划特征,包括:

13.如权利要求1-12任一项所述的方法,其特征在于,所述方法还包括:

14.如权利要求1-12任一项所述的方法,其特征在于,所述基于所述多个执行计划中任意两个执行计划的所述预测结果,从所述多个执行计划中,确定针对所述查询语句的目标执行计划,包括:

15.如权利要求1-12任一项所述的方法,其特征在于,所述确定针对所述查询语句的目标执行计划之后,所述方法还包括:

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

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

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

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

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