一种数据查询方法、装置、设备及可读存储介质制造方法及图纸

技术编号:36116764 阅读:55 留言:0更新日期:2022-12-28 14:21
本说明书公开了一种数据查询方法、装置、设备及可读存储介质,针对目标数据库生成奖励矩阵,通过预先训练的神经网络预测当前状态执行各候选动作得到的查询结果的基数确定奖励值,并根据预测出的奖励值更新奖励矩阵,以便在接收到数据查询请求时,根据目标查询语句中包含的各目标表,从更新后的奖励矩阵中确定各目标表的连接顺序,并以该连接顺序执行目标查询语句得到查询结果。可见,通过神经网络得到的查询结果的基数确定出以当前状态执行各候选动作的奖励值,以查询结果的基数作为选择数据库中表的连接顺序的反馈,不会受到执行数据查询的硬件环境的影响,实现了在保证准确度的前提下,降低了时间成本的目的。降低了时间成本的目的。降低了时间成本的目的。

【技术实现步骤摘要】
一种数据查询方法、装置、设备及可读存储介质


[0001]本说明书涉及计算机
,尤其涉及一种数据查询方法、装置、设备及可读存储介质。

技术介绍

[0002]随着数据的爆发式增长,数据库领域相关的技术受到了广泛的关注。其中,数据库为了方便数据管理可设置多个表存储数据,而如何快速得基于多个表确定查询结果一直以来都是数据库领域的研究重点。
[0003]为了提高在数据库中基于查询语句得到查询结果的效率,本说明书提供一种数据查询方法。

技术实现思路

[0004]本说明书提供一种数据查询方法、装置、设备及可读存储介质,以部分的解决现有技术存在的上述问题。
[0005]本说明书采用下述技术方案:
[0006]本说明书提供了一种数据查询方法,包括:
[0007]针对目标数据库生成奖励矩阵,所述奖励矩阵中包含表征不同状态下执行不同动作的奖励值,所述状态为已执行的动作的顺序,所述动作为查询所述目标数据库中的一个表;
[0008]确定当前状态,并根据所述当前状态确定至少一个候选动作;
[0009]针对每个候选动作,通过预先训练的神经网络预测在所述当前状态下执行该候选动作的奖励值,其中,根据所述已执行的动作以及所述候选动作查询到的查询结果的基数越少,奖励值越大;
[0010]根据确定出的奖励值更新所述奖励矩阵,并根据更新后的奖励矩阵从各候选动作中选择目标动作,将所述目标动作作为已执行的动作,并重新确定当前状态,根据重新确定的当前状态继续确定候选动作,直至达到预设结束条件为止,确定得到目标奖励矩阵;
[0011]响应于目标查询语句,确定所述目标查询语句中包含的若干目标表;
[0012]根据所述目标奖励矩阵,确定所述目标查询语句查询各目标表的顺序,并执行所述目标查询语句,得到查询结果。
[0013]本说明书提供了一种数据查询装置,包括:
[0014]生成模块,用于针对目标数据库生成奖励矩阵,所述奖励矩阵中包含表征不同状态下执行不同动作的奖励值,所述状态为已执行的动作的顺序,所述动作为查询所述目标数据库中一个表;
[0015]第一确定模块,用于确定当前状态,并根据所述当前状态确定至少一个候选动作;
[0016]第二确定模块,用于针对每个候选动作,通过预先训练的神经网络预测在所述当前状态下执行该候选动作的奖励值,其中,根据所述已执行的动作以及所述候选动作查询
到的查询结果的基数越少,奖励值越大;
[0017]更新模块,用于根据确定出的奖励值更新所述奖励矩阵,并根据更新后的奖励矩阵从各候选动作中选择目标动作,将所述目标动作作为已执行的动作,并重新确定当前状态,根据重新确定的当前状态继续确定候选动作,直至达到预设结束条件为止,确定得到目标奖励矩阵;
[0018]第三确定模块,用于响应于目标查询语句,确定所述目标查询语句中包含的若干目标表;
[0019]执行模块,用于根据所述目标奖励矩阵,确定所述目标查询语句查询各目标表的顺序,并执行所述目标查询语句,得到查询结果。
[0020]本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据查询方法。
[0021]本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据查询方法。
[0022]本说明书采用的上述至少一个技术方案能够达到以下有益效果:
[0023]本说明提供的数据查询方法中,针对目标数据库生成奖励矩阵,通过预先训练的神经网络预测当前状态执行各候选动作得到的查询结果的基数确定奖励值,并根据预测出的奖励值更新奖励矩阵,以便在接收到数据查询请求时,根据目标查询语句中包含的各目标表,从更新后的奖励矩阵中确定各目标表的连接顺序,并以该连接顺序执行目标查询语句得到查询结果。可见,通过神经网络得到的查询结果的基数确定出以当前状态执行各候选动作的奖励值,以查询结果的基数作为选择数据库中表的连接顺序的反馈,不会受到执行数据查询的硬件环境的影响,实现了在保证准确度的前提下,降低了时间成本的目的。
附图说明
[0024]此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
[0025]图1为本说明书中一种数据查询方法的流程示意图;
[0026]图2为本说明书中一种数据查询方法的流程示意图;
[0027]图3为本说明书中一种数据查询方法的流程示意图;
[0028]图4为本说明书提供的一种数据查询装置的示意图;
[0029]图5为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
[0030]为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
[0031]另外,需要说明的是,本专利技术中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进
行的。
[0032]随着信息技术的发展,数据库作为支撑数据存储和查询的手段,依然发挥着重要的作用。数据的存储量与日俱增,用户对数据库中数据的查询需求也越来越复杂。面对数据量庞大的数据库,数据检索的效率成为研究人员关心的重要问题之一。这就需要针对数据库的查询进行优化,以保证数据库在处理大量复杂的查询请求时的查询效率和质量。
[0033]目前,对于关系型数据库而言,通过数据查询器对输入的查询语句进行相应的优化,数据查询器是数据库系统获得良好性能的关键组件。数据查询器的主要工作是将输入的声明式查询语句优化为以各步骤详细且高效可执行的物理查询计划,其中,连接顺序的优化是数据库数据查询器的核心,同一条查询语句采用连接顺序不同的查询计划甚至会导致响应事件相差多个数量级。其对数据查询的优化过程通常为:数据库接收结构化查询语言(Structured Query Language,SQL)查询请求,并根据该SQL查询请求,生成多种执行计划,其中,执行计划是数据库针对查询请求生成的一种查询的规划,如:采用何种查询算法、多个数据表的查询次序等等,之后,数据库会对各个执行计划可能的查询耗时和处理资源的消耗进行预测,以便选择出最优的执行计划,后续可按照该最优的执行计划进行数据查询。
[0034]目前,传统的数据查询器通常使用静态连接次序枚举算法,这些算法不包含关于产生的查询计划质量好与坏的反馈,因此优化器通常会重复选择同样差的查询计划。此外穷举遍历的方法,空间成本太高。连接次序选择的最终目的是通过枚本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,所述方法包括:针对目标数据库生成奖励矩阵,所述奖励矩阵中包含表征不同状态下执行不同动作的奖励值,所述状态为已执行的动作的顺序,所述动作为查询所述目标数据库中的一个表;确定当前状态,并根据所述当前状态确定至少一个候选动作;针对每个候选动作,通过预先训练的神经网络预测在所述当前状态下执行该候选动作的奖励值,其中,根据所述已执行的动作以及所述候选动作查询到的查询结果的基数越少,奖励值越大;根据确定出的奖励值更新所述奖励矩阵,并根据更新后的奖励矩阵从各候选动作中选择目标动作,将所述目标动作作为已执行的动作,并重新确定当前状态,根据重新确定的当前状态继续确定候选动作,直至达到预设结束条件为止,确定得到目标奖励矩阵;响应于目标查询语句,确定所述目标查询语句中包含的若干目标表;根据所述目标奖励矩阵,确定所述目标查询语句查询各目标表的顺序,并执行所述目标查询语句,得到查询结果。2.如权利要求1所述的方法,预先训练神经网络,具体包括:根据所述目标数据库生成查询语句,将所述查询语句中包含的各动作作为训练样本;在所述目标数据库中执行所述查询语句,得到所述训练样本在所述目标数据库中的查询结果的基数,作为所述训练样本的标签;将所述训练样本输入待训练的神经网络,得到所述神经网络输出的所述训练样本的预测基数;以所述预测基数与所述训练样本的标签之间的差异最小化为训练目标,训练所述神经网络。3.如权利要求1所述的方法,通过预先训练的神经网络预测在所述当前状态下执行该候选动作的奖励值,具体包括:当所述当前状态存在上一状态时,则根据所述奖励矩阵,确定在所述上一状态下执行动作所能获得的最大奖励值,并根据所述最大奖励值以及所述神经网络预测在所述当前状态下执行该候选动作的奖励值,确定该候选动作的奖励值;当所述当前状态不存在上一状态时,则通过所述神经网络预测在所述当前状态下执行该候选动作的奖励值。4.如权利要求1所述的方法,根据更新后的奖励矩阵从各候选动作中选择目标动作,具体包括:根据更新后的奖励矩阵中在所述当前状态下分别执行所述各候选动作的奖励值,确定奖励值最大的候选动作为目标动作。5.如权利要求1所述的方法,所述预设结束条件为所述奖励矩阵的更新次数达到预设次数。6.如权利要求1所述的方法,根据所述当前状态确定至少一个候选动作,具体包括:判断所述当前状态是否包含所有动作;若是,将初始状态作为当前状态,并根据所述奖励矩阵和所述当前状态确定至少一个候选动作;其中,所述初始状态为没有已执行的动作;若否,根据所述当前状态,在未执行的动作中确定在所述当前状态下的至少一个候选
动作。7.如权利要求6所述的方法,根据所述奖励矩阵和所述当前状态确定至少一个候选动作,具体包括:根据所述奖励矩阵,确定所述奖励矩阵的各状态的首位动作;判断是否存在未作为首位动作的动作;若是,则根据未作为首位动作的动作,确定候选动作;若否,根据所述奖励矩阵,确定首位动作相同的各状态的奖励更新次数,作为各首位动作的更新次数,按照各首位动作的更新次数从小到大的顺序,确定候选动作。8.如权利要求1所述的方法,根据所述当前状态确定至少一个候选动作,具体包括:获取所述目标数据库的表查询记录,确定各动作的执行频率;根据执行频率高于预设阈值的动作,确定候选动作。9.如权利要求8所述的方法,根据各目标表,根据所述目标奖励矩阵,确定所述目标查询语句查询各目标表的顺序,具体包括:当所述目标查询语句包含的目标表不属于任何候选动作查询的表时,根据所述目标表,确定查询所述目标表的动作,根据确定出的动作更新候选动作;根据更新后的候选动作,更新所述目标奖励矩阵;根据更新后的目标奖励矩阵,确定所述目标查询语句查询各目标表的顺序。10.一种数据查询装置,包括:生成模块,用于针对目标数据库生成奖励矩阵,所述奖励矩阵中包含...

【专利技术属性】
技术研发人员:张济鹏徐泉清聂铁铮王国平申德荣杨传辉
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1