数据库查询语句的代价评估方法、计算机可读介质及设备与流程

摘要: 本技术涉及计算机及通信,具体而言,涉及一种数据库查询语句的代价评估方法、计算机可读介质及设备。背景技术:1、在数据库系统中,查询优化器扮演着至关重要的角色,其核...
数据库查询语句的代价评估方法、计算机可读介质及设备与流程

本技术涉及计算机及通信,具体而言,涉及一种数据库查询语句的代价评估方法、计算机可读介质及设备。

背景技术:

1、在数据库系统中,查询优化器扮演着至关重要的角色,其核心任务是为给定的结构化查询语言(structured query language,sql)查询语句生成一个高效的物理执行计划,以最小化资源消耗并提升执行效率。在这个过程中,准确有效地评估查询操作的代价(cost)尤为重要,但是相关技术中提出的代价评估方案在准确性与适应性方面具有较大的局限性,尤其是在面对高维数据分布不均、多表连接复杂度高以及谓词选择性难以估计等挑战时,往往难以做出准确的代价预测。

技术实现思路

1、本技术的实施例提供了一种数据库查询语句的代价评估方法、计算机可读介质及设备,可以有效提升了代价预测的准确性,有助于生成更优的物理执行计划,提升数据库系统的查询性能与资源利用率。

2、本技术的其它特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。

3、根据本技术实施例的一个方面,提供了一种数据库查询语句的代价评估方法,包括:获取数据库查询语句样本;调用数据库计划分析工具执行所述数据库查询语句样本,以获取所述数据库查询语句样本对应的物理查询计划、代价估计信息和代价实际信息;根据所述物理查询计划、所述代价估计信息和所述代价实际信息生成训练数据;使用所述训练数据对网络模型进行训练,得到训练后模型,所述训练后模型用于评估数据库查询语句的代价。

4、根据本技术实施例的一个方面,提供了一种数据库查询语句的代价评估装置,包括:获取单元,配置为获取数据库查询语句样本;处理单元,配置为调用数据库计划分析工具执行所述数据库查询语句样本,以获取所述数据库查询语句样本对应的物理查询计划、代价估计信息和代价实际信息;生成单元,配置为根据所述物理查询计划、所述代价估计信息和所述代价实际信息生成训练数据;训练单元,配置为使用所述训练数据对网络模型进行训练,得到训练后模型,所述训练后模型用于评估数据库查询语句的代价。

5、在本技术的一些实施例中,基于前述方案,所述代价估计信息包括所述查询语句样本的估计代价和估计基数,所述代价实际信息包括所述查询语句样本的实际代价和实际基数;所述生成单元配置为:根据所述物理查询计划、所述估计代价和所述估计基数生成查询计划信息;根据所述查询计划信息、所述实际代价和所述实际基数生成所述训练数据。

6、在本技术的一些实施例中,基于前述方案,所述训练单元配置为:提取所述查询计划信息对应的特征向量;将所述特征向量输入至所述网络模型中,以得到所述网络模型针对所述查询计划信息所输出的预测代价和预测基数;根据所述预测代价与所述实际代价之间的损失值,以及所述预测基数与所述实际基数之间的损失值,计算所述网络模型对应的模型损失值;根据所述模型损失值调整所述网络模型的模型参数。

7、在本技术的一些实施例中,基于前述方案,所述训练单元配置为:提取所述查询计划信息包含的各个操作节点所对应的节点向量;根据所述查询计划信息包含的多个操作节点之间的层级关系,将所述多个操作节点分别对应的节点向量进行拼接处理,以生成树形特征向量,将所述树形特征向量作为所述查询计划信息对应的特征向量。

8、在本技术的一些实施例中,基于前述方案,所述训练单元配置为:提取所述各个操作节点包含的多个元素信息分别对应的向量表示;将所述多个元素信息分别对应的向量表示进行拼接处理,以得到所述各个操作节点对应的节点向量。

9、在本技术的一些实施例中,基于前述方案,所述多个元素信息包括物理算子;所述训练单元配置为:提取所述物理算子对应的物理操作类型;采用独热编码的方式将所述物理操作类型编码为向量表示,以作为所述物理算子对应的向量表示。

10、在本技术的一些实施例中,基于前述方案,所述多个元素信息包括谓词条件;所述训练单元配置为:若所述谓词条件表示的是原子谓词,则对所述原子谓词进行拆分处理,得到所述原子谓词对应的列名、操作符和操作数;对所述列名、所述操作符和所述操作数分别进行特征编码处理,得到所述列名、所述操作符和所述操作数分别对应的向量表示;将所述列名、所述操作符和所述操作数分别对应的向量表示进行拼接处理,得到所述原子谓词对应的向量表示。

11、在本技术的一些实施例中,基于前述方案,所述训练单元配置为:若所述谓词条件节点表示的是复合谓词,则对所述复合谓词所包含的多个原子谓词分别进行特征编码处理,得到所述多个原子谓词分别对应的向量表示;根据所述复合谓词所包含的谓词树结构,对所述多个原子谓词分别对应的向量表示进行拼接处理,得到所述复合谓词对应的向量表示。

12、在本技术的一些实施例中,基于前述方案,所述多个元素信息包括元数据信息;所述训练单元配置为:对所述元数据信息中所包含的多种元数据分别进行特征编码处理,得到所述多种元数据分别对应的向量表示;将所述多种元数据分别对应的向量表示进行拼接处理,得到所述元数据信息对应的向量表示。

13、在本技术的一些实施例中,基于前述方案,所述多个元素信息包括样本位图;所述训练单元配置为:根据操作节点包含的谓词条件,查找所述谓词条件关联的数据库表;从所述数据库表中选取数据样本,根据所述数据样本是否满足所述谓词条件生成具有设定长度的样本位图;对所述样本位图进行特征编码处理,以作为所述样本位图对应的向量表示。

14、在本技术的一些实施例中,基于前述方案,所述多个元素信息包括所述估计代价和所述估计基数;所述训练单元配置为:对所述估计代价和所述估计基数进行归一化处理,将归一化处理的结果作为所述估计代价和所述估计基数对应的向量表示。

15、在本技术的一些实施例中,基于前述方案,所述获取单元配置为:获取数据库表对应的连接图,所述连接图的节点表示数据库表,所述连接图的边表示数据库表之间的连接条件;遍历所述连接图,对遍历到的节点添加谓词条件,以生成多个查询表达式;使用逻辑运算符将所述多个查询表达式进行连接,得到复合表达式;向所述复合表达式中注入优化器提示,生成所述数据库查询语句样本。

16、在本技术的一些实施例中,基于前述方案,所述获取单元配置为:识别数据库表之间的主键和外键关系;根据所述主键和外键的关系,构建数据库表之间的连接条件;根据所述数据库表之间的连接条件生成所述连接图。

17、在本技术的一些实施例中,基于前述方案,所述获取单元配置为:对于遍历到的节点中所包含的数值型的第一数据列,根据随机选择的运算符和操作数生成所述第一数据列所对应的数值表达式,将所述数值表达式作为所述查询表达式;对于遍历到的节点中所包含的字符型或文本型的第二数据列,根据随机选择的操作符和关键词生成所述第二数据列所对应的字符串表达式,将所述字符串表达式作为所述查询表达式。

18、根据本技术实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的数据库查询语句的代价评估方法。

19、根据本技术实施例的一个方面,提供了一种计算机设备,包括:一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述计算机设备实现如上述实施例中所述的数据库查询语句的代价评估方法。

20、根据本技术实施例的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取并执行该计算机程序,使得该计算机设备执行上述各种可选实施例中提供的数据库查询语句的代价评估方法。

21、在本技术的一些实施例所提供的技术方案中,在获取数据库查询语句样本之后,可以调用数据库计划分析工具执行该数据库查询语句样本,以获取该数据库查询语句样本对应的物理查询计划、代价估计信息和代价实际信息,然后根据该物理查询计划、代价估计信息和代价实际信息生成训练数据,并使用该训练数据对网络模型进行训练,以使用训练后的模型评估数据库查询语句的代价。可见,本技术实施例的技术方案融合了数据库计划分析工具的代价估计信息(如估计代价、估计基数等)与真实执行代价信息(如实际代价、实际基数等),进而可以确保训练数据既包含先验知识,又具备实际运行时的动态特征,从而有效提升了模型预测的准确性与泛化能力,有助于生成更优的物理执行计划,提升数据库系统的查询性能与资源利用率。

22、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。