数据查询及模型训练方法、装置、设备及存储介质与流程
本技术实施例涉及计算机,尤其涉及一种数据查询及模型训练方法、装置、设备及存储介质。
背景技术:
1、在数据查询场景中,当用户提交数据库查询请求时,数据库系统的查询优化器(query optimizer)会生成一个查询计划,该查询计划决定了数据访问路径(如索引选择、表连接顺序等)。
2、目前数据查询方法是,对对象提交的查询请求进行解析,生成查询计划,基于该查询计划,估计执行该查询请求所需消耗的资源。若数据库系统的当前可用资源大于该查询请求所需消耗的资源时,则启动该查询请求。但是,若数据库系统的当前可用资源小于该查询请求所需消耗的资源时,则将该查询请求放入队列等待,这样会增加数据查询的等待时间,进而降低数据的查询效率。
技术实现思路
1、本技术提供一种数据查询及模型训练方法、装置、设备及存储介质,可以实现提升数据的查询效率。
2、第一方面,本技术提供一种数据查询方法,包括:
3、响应于接收到的查询请求,获取当前时刻数据库系统的资源负载指标;
4、生成所述查询请求的n个候选查询计划,所述n为大于1的正整数;
5、基于所述资源负载指标,从所述n个候选查询计划中,选择目标查询计划;
6、基于所述目标查询计划,在所述数据库中进行数据查询,得到所述查询请求的查询结果。
7、第二方面,本技术提供一种模型训练方法,包括:
8、获取训练样本,所述训练样本包括:数据库系统的一组资源负载指标和一个候选查询计划,所述候选查询计划为一个历史查询请求的n个候选查询计划中的任意一个,所述资源负载指标为数据库系统的p组资源负载指标中的一组,所述n和p均为大于1的正整数;
9、提取所述候选查询计划的特征信息;
10、通过查询计划预估模型,对所述候选查询计划的特征信息和所述资源负载指标进行融合处理,得到所述候选查询计划的预估查询时长;
11、基于所述候选查询计划的预估查询时长,确定模型损失,并基于所述模型损失对所述查询计划预估模型进行训练。
12、第三方面,本技术提供一种数据查询装置,包括:
13、获取单元,用于响应于接收到的查询请求,获取当前时刻数据库系统的资源负载指标;
14、生成单元,用于生成所述查询请求的n个候选查询计划,所述n为大于1的正整数;
15、选择单元,用于基于所述资源负载指标,从所述n个候选查询计划中,选择目标查询计划;
16、查询单元,用于基于所述目标查询计划,在所述数据库中进行数据查询,得到所述查询请求的查询结果。
17、在一些实施例中,选择单元,具体用于基于所述资源负载指标,确定所述n个候选查询计划中每一个候选查询计划的查询时长;基于所述查询时长,从所述n个候选查询计划中,选出所述目标查询计划。
18、在一些实施例中,所述资源负载指标包括所述数据库系统的系统级瓶颈指标和关键耗时指标中的至少一个,所述关键耗时指标是指所述数据库系统在执行查询计划时各关键环节的耗时指标。
19、在一些实施例中,若所述资源负载指标包括所述数据库系统的系统级瓶颈指标时,获取单元,具体用于获取收集的所述数据库系统在当前时间段的不同时刻的系统级瓶颈指标;对于所述系统级瓶颈指标中的每一个指标,将所述指标在所述当前时间段的不同时刻的数值的平均值,确定为所述指标在当前时刻的数值。
20、在一些实施例中,若所述资源负载指标包括所述数据库系统的关键耗时指标时,获取单元,具体用于获取收集的所述数据库系统在当前时间段执行不同查询计划时的关键耗时指标;对于所述关键耗时指标中的每一个指标,将所述指标在所述当前时间段的数值的平均值,确定为所述指标在当前时刻的数值。
21、在一些实施例中,选择单元,具体用于对于所述n个候选查询计划中的第i个候选查询计划,提取所述第i个候选查询计划的特征信息,所述i为从1到n的正整数;通过查询计划预估模型,对所述第i个候选查询计划的特征信息和所述资源负载指标进行融合处理,得到所述第i个候选查询计划的查询时长。
22、在一些实施例中,选择单元,具体用于对所述资源负载指标中的每一个指标进行标准化和归一化处理,得到资源负载编码信息;通过查询计划预估模型,对所述第i个候选查询计划的特征信息和所述资源负载编码信息进行融合处理,得到所述第i个候选查询计划的查询时长。
23、在一些实施例中,所述查询计划预估模型包括交叉注意力模块,选择单元,具体用于通过所述交叉注意力模块,对所述第i个候选查询计划的特征信息和所述资源负载编码信息进行融合处理,得到所述第i个候选查询计划的交叉注意力结果;基于所述第i个候选查询计划的交叉注意力结果,确定所述第i个候选查询计划的查询时长。
24、在一些实施例中,选择单元,具体用于将所述第i个候选查询计划的特征信息分别与所述交叉注意力模块中的键权重矩阵和值权重矩阵进行相乘,得到所述第i个候选查询计划对应的键矩阵和值矩阵;将所述资源负载编码信息与所述交叉注意力模块中的查询权重矩阵相乘,得到所述第i个候选查询计划对应的查询矩阵;对所述第i个候选查询计划对应的键矩阵、值矩阵和查询矩阵进行注意力计算,得到所述第i个候选查询计划的交叉注意力结果。
25、在一些实施例中,所述交叉注意力模块还包括全连接层,选择单元,具体用于通过所述全连接层,对所述第i个候选查询计划的交叉注意力结果进行处理,得到所述第i个候选查询计划的查询时长。
26、在一些实施例中,选择单元,具体用于通过特征提取模型,对所述第i个候选查询计划进行特征提取,得到所述第i个候选查询计划的特征信息。
27、在一些实施例中,所述特征提取模型包括树卷积网络和池化层,选择单元,具体用于通过所述树卷积网络,捕捉所述第i个候选查询计划的树结构中的层次关系与语义信息,得到所述第i个候选查询计划的结构语义信息;通过池化层对所述第i个候选查询计划的结构语义信息进行处理,得到所述第i个候选查询计划的特征信息。
28、在一些实施例中,生成单元,具体用于通过优化器,生成所述查询请求的n个候选查询计划,所述优化器是基于n个不同的提示信息进行训练得到,所述提示信息用于描述候选查询计划所需满足的要求。
29、第三方面,本技术提供一种模型训练装置,包括:
30、获取单元,用于获取训练样本,所述训练样本包括:数据库系统的一组资源负载指标和一个候选查询计划,所述候选查询计划为一个历史查询请求的n个候选查询计划中的任意一个,所述资源负载指标为数据库系统的p组资源负载指标中的一组,所述n和p均为大于1的正整数;
31、提取单元,用于提取所述候选查询计划的特征信息;
32、预估单元,用于通过查询计划预估模型,对所述候选查询计划的特征信息和所述资源负载指标进行融合处理,得到所述候选查询计划的预估查询时长;
33、训练单元,用于基于所述候选查询计划的预估查询时长,确定模型损失,并基于所述模型损失对所述查询计划预估模型进行训练。
34、在一些实施例中,训练单元,具体用于确定所述候选查询计划,在所述资源负载指标下的真实查询时长;基于所述候选查询计划的预估查询时长和真实查询时长,确定所述模型损失。
35、在一些实施例中,获取单元,还用于通过调整所述数据库系统的状态和数据库配置,生成所述p组资源负载指标。
36、第四方面,本技术提供了一种计算设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或第二方面的方法。
37、第五方面,提供了一种芯片,用于实现上述第一方面或第二方面其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面或第二方面的方法。
38、第六方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面或第二方面的方法。
39、第七方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面或第二方面的方法。
40、第八方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面的方法。
41、综上,本技术响应于接收到的查询请求,获取数据库系统在当前时刻的资源负载指标,其中查询请求用于请求查询数据库中的数据。接着,生成查询请求的n个候选查询计划,n为大于1的正整数。然后,基于资源负载指标,从n个候选查询计划中,选择目标查询计划。最后,基于目标查询计划,在数据库中进行数据查询,得到查询请求的查询结果。即本技术实施例通过生成该查询请求的n个候选查询计划,进而基于当前时刻数据库系统的资源负载指标,从这n个候选查询计划中,选择与当前时刻数据库系统的负载状况匹配的目标查询计划。也就是说,本技术实施例面对资源不足的查询请求时,能够在n个候选查询计划中选择合适的目标查询计划继续执行,避免排队等待造成的高时延问题,进而显著提升系统运行效率与稳定性,满足数据库系统高效、稳定运行的要求,从而提升了数据查询的效率。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com