CN116150190A - 基于树型qrnn的数据库查询优化处理方法及系统 - Google Patents
基于树型qrnn的数据库查询优化处理方法及系统 Download PDFInfo
- Publication number
- CN116150190A CN116150190A CN202310120892.8A CN202310120892A CN116150190A CN 116150190 A CN116150190 A CN 116150190A CN 202310120892 A CN202310120892 A CN 202310120892A CN 116150190 A CN116150190 A CN 116150190A
- Authority
- CN
- China
- Prior art keywords
- node
- tree
- neural network
- quasi
- execution plan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0463—Neocognitrons
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于树型QRNN的数据库查询优化处理方法机系统;其中所述方法,包括:获取输入的结构化查询语句;确定所述结构化查询语句对应的执行计划,获取执行计划的树状结构,执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件;将执行计划树状结构中每一个节点对应的信息转化成特征向量;构建并训练查询优化器模型;查询优化器模型在训练时,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练的;将执行计划树状结构中每一个节点的特征向量输入到查询优化器模型的树型准循环神经网络的对应节点中,得到多层感知机输出的查询成本,基于查询成本确定目标执行计划。
Description
技术领域
本发明涉及数据库查询优化技术领域,特别是涉及基于树型QRNN的数据库查询优化处理方法及系统。
背景技术
本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
基础软件是信息产业发展和信息化建设的重要基础和支撑,核心的基础软件越来越被企业所重视。其中,数据库作为基础软件的重要组成之一,数据库的应用领域非常广泛,很多公司都需要利用数据库来存储数据信息。而数据库中的查询优化器,能够决定数据库的执行性能。其中的成本估计对查询优化器至关重要,它可以指导执行计划的选择,为查询语句选择出一个高效的执行计划。并且,随着大数据时代的到来,数据大量增长,因此,建立合理的并且能够持续处理新增数据的查询优化器的成本估计模型具有非常重要的现实意义。
随着数据库近年来的不断发展,数据库开始与各项新兴技术结合,如人工智能、区块链、密态计算等。数据库与人工智能的结合是一种双赢,数据库和人工智能都能从这次结合中受益。由于查询优化基于启发式的本质,有很多人尝试将深度学习应用于查询优化器中的成本估计。例如对执行计划的树结构进行异构建模,并采用线性的方法去捕获执行计划的特征信息。然而这类方法不对执行计划中的谓词进行编码,依赖于关系型数据库估计的基数和估计的成本,最终导致在预测的时候产生误差,并且采用线性的方法无法准确地捕捉到复杂执行计划的信息。同时还有另一部分的研究是采用循环神经网络的变体长短期记忆网络(LSTM)对执行计划中的节点进行建模,这样能够解决梯度消失和梯度爆炸的问题,但是此类方法计算量大,并且无法并行计算,训练困难。此外,还有研究者采用了Transformer模型去捕获执行计划中节点的信息以及采用树偏注意力机制去捕获执行计划的树结构特征。
上述的方法虽然都取得了一定的成果,但是都没有将查询优化器中成本估计的影响因素全面的考虑在在内;其次,它们大多只考虑了静态数据下的情况,忽略了现实场景中增量数据对成本估计模型产生的影响。
发明内容
为了解决现有技术的不足,本发明提供了基于树型QRNN的数据库查询优化处理方法及系统;根据已有的执行计划以及统计信息对成本进行估计,同时还采用增量学习方法去持续学习新数据,使得数据库能够根据成本估计值去更好地选择执行计划去执行,进而达到提高数据库执行查询语句性能目的。
第一方面,本发明提供了基于树型QRNN的数据库查询优化处理方法;
基于树型QRNN的数据库查询优化处理方法,包括:
获取输入的结构化查询语句;
确定所述结构化查询语句对应的执行计划,获取执行计划的树状结构,执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件;将执行计划树状结构中每一个节点对应的信息转化成特征向量;
构建并训练查询优化器模型;所述查询优化器模型,包括:树型准循环神经网络和多层感知机;树型准循环神经网络是树状结构,树型准循环神经网络的树状结构中的节点与执行计划的树状结构中的节点是一一对应的;树型准循环神经网络的每个节点均采用准循环神经网络来实现,树型准循环神经网络的树状结构的根节点与多层感知机连接;查询优化器模型在训练时,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练的;
将执行计划树状结构中每一个节点的特征向量输入到查询优化器模型的树型准循环神经网络的对应节点中,得到多层感知机输出的查询成本,基于查询成本确定目标执行计划。
第二方面,本发明提供了基于树型QRNN的数据库查询优化处理系统;
基于树型QRNN的数据库查询优化处理系统,包括:
获取模块,其被配置为:获取输入的结构化查询语句;
确定模块,其被配置为:确定所述结构化查询语句对应的执行计划,获取执行计划的树状结构,执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件;将执行计划树状结构中每一个节点对应的信息转化成特征向量;
处理模块,其被配置为:构建并训练查询优化器模型;所述查询优化器模型,包括:树型准循环神经网络和多层感知机;树型准循环神经网络是树状结构,树型准循环神经网络的树状结构中的节点与执行计划的树状结构中的节点是一一对应的;树型准循环神经网络的每个节点均采用准循环神经网络来实现,树型准循环神经网络的树状结构的根节点与多层感知机连接;查询优化器模型在训练时,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练的;
输出模块,其被配置为:将执行计划树状结构中每一个节点的特征向量输入到查询优化器模型的树型准循环神经网络的对应节点中,得到多层感知机输出的查询成本,基于查询成本确定目标执行计划。
第三方面,本发明还提供了一种电子设备,包括:
存储器,用于非暂时性存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,
其中,所述计算机可读指令被所述处理器运行时,执行上述第一方面所述的方法。
第四方面,本发明还提供了一种存储介质,非暂时性地存储计算机可读指令,其中,当非暂时性计算机可读指令由计算机执行时,执行第一方面所述方法的指令。
第五方面,本发明还提供了一种计算机程序产品,包括计算机程序,所述计算机程序当在一个或多个处理器上运行的时候用于实现上述第一方面所述的方法。
与现有技术相比,本发明的有益效果是:
首先从传统数据库的统计信息中提取出直方图以及最频值,采用线性差值的方法去重新分配直方图横轴值,再通过谓词信息给直方图与最频值信息进行特征编码,这样能够充分利用数据库统计信息。
然后再利用树型准循环神经网络为执行计划进行建模,模型支持并行计算,并且能够捕捉长期依赖性。
最后,方法采用了增量学习,对增量数据进行处理,进一步迭代更新模型权重,使得模型在动态数据的情况下,更为准确。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例一的模型框架图;
图2为本发明实施例一的树型准循环神经网络单元原理示例图;
图3为本发明实施例一的增量学习部分原理示例图;
图4为本发明实施例一的直方图编码示意图;
图5为本发明实施例一的两种树结构一一对应关系示意图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
现有的基于执行计划的深度学习成本估计方法没有充分地考虑成本估计中的影响因素,并且没有在保证建模准确的情况下提高模型的并行度,以减少训练时长。此外,没有考虑在增量数据下,模型权重的迭代更新问题。
实施例一
本实施例提供了基于树型QRNN的数据库查询优化处理方法;
如图1所示,基于树型QRNN的数据库查询优化处理方法,包括:
S101:获取输入的结构化查询语句;
S102:确定所述结构化查询语句对应的执行计划,获取执行计划的树状结构,执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件;将执行计划树状结构中每一个节点对应的信息转化成特征向量;
S103:构建并训练查询优化器模型;所述查询优化器模型,包括:树型准循环神经网络和多层感知机;树型准循环神经网络是树状结构,树型准循环神经网络的树状结构中的节点与执行计划的树状结构中的节点是一一对应的;树型准循环神经网络的每个节点均采用准循环神经网络来实现,树型准循环神经网络的树状结构的根节点与多层感知机连接;查询优化器模型在训练时,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练的;
S104:将执行计划树状结构中每一个节点的特征向量输入到查询优化器模型的树型准循环神经网络的对应节点中,得到多层感知机输出的查询成本,基于查询成本确定目标执行计划。
应理解地,所述S101:获取输入的结构化查询语句,其中结构化查询语句,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库中存储的数据。
进一步地,所述S102:确定所述结构化查询语句对应的执行计划,具体包括:
在PostgreSQL数据库中使用explain analyse SQL查询到所述结构化查询语句SQL的执行计划。
应理解地,PostgreSQL数据库在查询规划路径过程中,查询请求的不同执行方案是通过建立不同的路径来表达的,在生成较多符合条件的路径之后,要从中选择出代价最小的路径,把它转化为一个执行计划,传递给执行器执行。
进一步地,所述执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件,其中,执行计划树状结构中的每一个节点均包括:表和操作类型,执行计划树状结构中的每一个节点允许包括谓词条件,也允许不包括谓词条件。
进一步地,执行计划树状结构中的每一个节点,是指执行计划中执行路径上的一个节点。
进一步地,获取执行计划的树状结构,包括:
如果当前节点与邻接节点之间有父子节点的连接关系,则当前节点与节点之间存在连接关系;
如果当前节点与邻接节点之间无父子节点的连接关系,则当前节点与邻接节点之间不存在连接关系。
进一步地,所述S102:将执行计划树状结构中每一个节点对应的信息转化成特征向量,具体包括:
S102-1:对执行计划树状结构中每一个节点中的表、操作类型以及谓词条件,分别进行特征编码;
S102-2:对被查询数据库统计信息中的直方图和最频值,分别进行特征编码;
S102-3:将所有的特征编码结果串联到一起,得到特征向量。
优选地,所述操作类型,是指:执行计划树状结构中当前节点的操作类型,所述操作类型,包括:全表扫描(Seq Scan)、索引扫描(Index Scan)、哈希连接(Hash Join)等若干个扫描类型。
进一步地,所述谓词条件,是指:在执行计划树状结构中当前节点下使用的过滤条件或者连接条件。例如:当前节点是对A表进行全表扫描(Seq Scan),其谓词条件为过滤条件“A.id>12”。
应理解地,PostgreSQL中的pg_stats存放有PostgreSQL数据库收集到的有关库内所有表的统计信息,直方图和最频值就在其中。PostgreSQL先从表中筛选出频率最高的值,作为“最频值”单独存储起来,剩下的所有值再采用“等频直方图”的形式进行数据统计。
进一步地,所述S102-1:对执行计划树状结构中每一个节点中的表、操作类型以及谓词条件,分别进行特征编码,具体包括:
对表、操作类型这两种类型的信息进行one-hot编码,即ET和EO;
在对谓词条件中的原子谓词条件进行编码时,采用one-hot编码与word2vec模型编码相结合的方式,对列、操作符采用one-hot编码的形式,对值采用word2vec模型编码的形式,并将二者串联起来,作为原子谓词的向量表示EA,
在对谓词条件中的复合谓词条件进行编码时,采用最大-最小池化操作对其中的原子谓词条件进行处理,对析取操作“OR”采用最大池化操作,对合取谓词“AND”采用最小池化操作,并将最后的输出结果作为谓词条件的特征嵌入向量表示EP。
进一步地,所述S102-2:对被查询数据库统计信息中的直方图和最频值,分别进行特征编码,具体包括:
S102-21:将所有列的直方图重新分组为相同的N个直方图的桶,对直方图的横轴通过线性插值来逼近新的直方图边界,线性插值假设在每个桶内均匀分布,再采用大小为N的向量对直方图进行编码,其中每个元素对应一个桶,并用谓词的可满足性进行标记;
S102-22:将最频值特征为最频值,采用谓词的可满足性进行标记。
示例性地,所述S102-21:如图4所示,有一个5桶的直方图,并且直方图横轴的各个边界集合为{2000,2005,2007,2019,2020,2023}。那么对于谓词条件year>2006,查询区域覆盖第二个桶的以及第三个桶、第四个桶、第五个桶的全部,那么该直方图编码为EH=[0,0.5,1,1,1]。
示例性地,所述S102-22:现有最频值为2012,则满足谓词条件year>2006,如此,最频值的编码为EM=[1]。
进一步地,所述S102-3:将所有的特征编码结果串联到一起,得到特征向量,具体包括:用Linear层与激活函数Relu层去处理所有特征向量,并将其串联起来,得到特征向量表示E。
应理解地,特征提取及编码主要是在充分的考虑成本估计的影响因素的前提下,将各个影响成本估计的因素信息分门别类地提取出来,并采用相应的方法进行特征编码,最后所有的特征向量串联起来,作为下一步模型的输入,为模型学习到执行计划以及数据库统计信息与成本估计的相关关系做好充分的铺垫。
进一步地,所述S103还包括:树型准循环神经网络QRNN的树状结构包括若干个节点。
进一步地,查询优化器模型,用于学习执行计划节点以及数据库统计信息中的特征与查询成本之间的关系。
进一步地,多层感知机MLP,将树型准循环神经网络QRNN根节点的输出值作为输入值,对结构化查询语句对应的执行计划的总成本进行估计。
进一步地,如图5所示,所述树型准循环神经网络,包括:
如果在执行计划的树状结构中当前节点与邻接节点相连,则与执行计划的树状结构对应的查询优化器模型的树型结构中,当前节点与邻接节点之间也存在连接关系;
如果在执行计划的树状结构中当前节点与邻接节点不相连,则与执行计划的树状结构对应的查询优化器模型的树型结构中,当前节点与邻接节点之间不存在连接关系。
进一步地,所述树型准循环神经网络的每个节点均采用准循环神经网络来实现,包括:
将树型准循环神经网络的所有节点根据节点所处位置划分为叶子节点、中间节点和根节点;根节点的输出端与多层感知机的输入端连接;根节点的输入端分别与左中间节点的输出端和右中间节点的输出端连接;左中间节点的输入端分别与左叶子节点的输出端和右叶子节点的输出端连接;
对于叶子节点而言,叶子节点所对应的准循环神经网络的输入值cl等于0,首个准循环神经网络的输入值cr等于0,叶子节点的准循环神经网络对输入值cl和输入值cr进行平均化处理,得到记忆单元ct-1;叶子节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到叶子节点的记忆单元ct;输入序列X是指当前准循环神经网络节点所对应的执行计划节点的特征向量;
对于中间节点而言,中间节点所对应的准循环神经网络的输入值cl等于与中间节点所连接的左叶子节点的记忆单元ct;中间节点所对应的准循环神经网络的输入值Cr等于与中间节点所连接的右叶子节点的记忆单元Ct,中间节点的准循环神经网络对输入值cl和输入值Cr进行平均化处理,得到记忆单元Ct-1;中间节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到中间节点的记忆单元ct;
对于根节点而言,根节点所对应的准循环神经网络的输入值cl等于与根节点所连接的左中间节点的记忆单元ct;根节点所对应的准循环神经网络的输入值cr等于与根节点所连接的右中间节点的记忆单元ct,根节点的准循环神经网络对输入值cl和输入值cr进行平均化处理,得到记忆单元ct-1;根节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到根节点的记忆单元ct。
进一步地,所述中间节点可以是多个中间节点。
进一步地,所述叶子节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到叶子节点的记忆单元ct;与
中间节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到中间节点的记忆单元ct;以及
根节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到根节点的记忆单元ct;具体处理过程均是一样的。
进一步地,所述叶子节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到叶子节点的记忆单元ct,具体包括:
对于输入序列X,分别通过三个卷积层和非线性层得到Z、F、O:
Z=tanh(Wz*X)
F=σ(Wf*X)
O=σ(Wo*X)
其中,*是卷积运算;Z是使用额外的内核库Wz获得的“输入门”输出;F是使用额外的内核库Wf获得的“忘记门”输出;O是使用额外的内核库Wf获得的“输出门”输出;
为了保持模型的因果关系,即标记过去才能预测未来,这里采用了遮罩卷积(masked-convolutions)的方法。输入序列的左边是“kernel_size-1”。因此,只有'sequence_length-kernel_size+1'过去的标记可以预测给定的标记;kernel_size表示卷积隐藏层的内核大小;sequence_length是序列长度;
当kernel_size=2时,公式表示为:
考虑序列数据的情况下,池化组件部分选择使用“忘记门”ft和“输出门”ot,这种池化操作被称为fo-pooling,其公式如下:
ct=ft⊙ct-1+(1-ft)⊙zt
ht=ot⊙ct
其中,“忘记门”ft决定准循环神经网络单元对当前时刻输入序列的保留程度;记忆单元ct决定准循环神经网络单元对从上一时刻传输过来的序列信息的保留程度;“输出门”ot决定准循环神经网络单元的输出。
应理解地,准循环神经网络QRNN,如图2所示,它接收来自左右节点的数据信息,并学习执行计划树状结构中每一个节点中的信息及其数据库统计信息结合的特征向量表示,在整体模型结构搭建上,符合执行计划树型结构的数据特征以及数据的时序顺序。具体流程如下:
(1)基于准循环神经网络QRNN学习执行计划节点信息以及数据库统计信息;
为了符合树型执行计划中数据时序顺序,准循环神经网络QRNN接收来自左节点的记忆单元cl与右节点的记忆单元cr,并且通过一个平均化处理,得到包含其全体子树信息的记忆单元ct-1。
为了整个模型能够捕获长期依赖性以及支持并行计算,方法选择了准循环神经网络(QRNN)为主体组件。准循环神经网络体系结构中有2个组件,它们分别对应于卷积神经网络(CNN)中的卷积组件以及池化(fo-pooling)组件。
对于输入序列X,分别通过三个卷积层和非线性层得到Z、F、O:
Z=tanh(Wz*X)
F=σ(Wf*X)
O=σ(Wo*X)
其中,*是卷积运算;Z是使用额外的内核库Wz获得的“输入门”输出;F是使用额外的内核库Wf获得的“忘记门”输出;O是使用额外的内核库Wf获得的“输出门”输出。
为了保留模型的因果关系(即只有使用过去的标记才可以预测未来的结果),使用了一种称为遮罩卷积(masked-convolutions)的概念。也就是说,输入序列的左边是“kernel_size-1”零。因此,只有'sequence_length-kernel_size+1'过去的标记可以预测给定的标记。
当kernel_size=2时,上述的公式可以表示为:
考虑序列数据的情况下,池化组件部分选择使用“忘记门”ft和“输出门”ot,这种池化操作被称为fo-pooling,其公式如下:
ct=ft⊙ct-1+(1-ft)⊙zt
ht=ot⊙ct
其中,“忘记门”ft决定准循环神经网络单元对当前时刻输入序列的保留程度;记忆单元ct决定准循环神经网络单元对从上一时刻传输过来的序列信息的保留程度;“输出门”ot决定准循环神经网络单元的输出。
根据上述操作,就可以对从执行计划的叶子节点到执行计划顶端节点的数据信息流进行学习,构建出一个合理的树型结构模型。
应理解地,使用多层感知机对执行计划总体成本进行估计:
树型模型最顶端输出的包含整个执行计划树信息的向量C作为多层感知机(MLP)的输入,对该执行计划的成本进行估计。首先将执行计划数据集拆分为训练集和测试集。在训练集上,将执行计划中真实的成本作为真值,将多层感知机的输出作为估计的成本,然后计算损失,损失函数可以表示为:
在本发明实施例中,所述查询优化器模型,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练得到的,包括:
S103-1:构建训练集,所述训练集为已知实际查询成本的历史执行计划;
S103-2:将训练集,输入到查询优化器模型中,对模型进行训练,当模型的第一损失函数值不再下降时,停止训练,得到初步训练后的查询优化器模型。
在本发明实施例中,所述第一损失函数,是指:
其中,estimated_cost为成本预测的结果,cost为目标成本值。
在本发明实施例中,所述方法还包括:
S103-3:当训练集有更新时,获取更新后的训练集,将更新后的训练集,输入到初步训练后的查询优化器模型中,对模型进行再次训练,当模型的第二损失函数值不再下降时,停止训练,得到最终训练后的查询优化器模型;第二损失函数,用Fisher信息矩阵和L2正则化对网络权重进行约束。
在本发明实施例中,第二损失函数,是指:
其中,LB(θ)表示未添加EWC算法前,直接训练旧的训练集的损失函数,即树型准循环神经网络部分中提及的损失函数;Fi表示Fisher信息矩阵;θi表示训练新的数据集B时的网络权重;表示训练完旧的训练集A得到的最优权重;λ为L2的正则化系数,L(θ)是第二损失函数。
其中,(x,y)i为旧任务A中的(estimated_cost,cost)i,Loss(θ|(x,y)i)即上述的损失函数Loss,对于每个参数θ,计算梯度,并累加所有的梯度,最后除以样本数量,即可得到对应参数的Fisher信息矩阵项。
应理解地,S103-3是增量学习动态数据部分,该部分主要是采用了弹性权重巩固算法(EWC,Elastic Weight Consolidation),如图3所示,算法通过度量网络权重对旧任务的重要程度,推导出重要度矩阵,即Fisher信息矩阵。为了保证网络中的这些对旧任务重要的权重在完成新增加的训练集的训练时变化不大,算法在训练新增加的数据集时,添加了L2正则项并结合Fisher信息矩阵来对旧任务重要的网络权重进行约束。
Fisher信息是一种衡量信息量的指标。如果我们要对一个随机变量x的分布进行建模,用于建模的参数是θ,那么Fisher信息是去度量x携带的有关θ的信息量。也就是在分布上,如果某一个θ点附近的函数表现得非常陡峭,这表示x的Fisher信息量较高,可以采取少量的点就能做出很好的估计;如果在某一个θ点附近的函数表现得平缓,则表示x的Fisher信息量较低,需要采样很多的点才能做出比较好的估计。这说明可以从随机变量的方差入手,对于一个真实参数θ,s函数的Fisher信息就能定义为s函数的方差:
考虑到上述定义,接下来,训练旧的训练集时,针对每一个网络权重,计算其梯度的平方来获得每一个参数的Fisher信息矩阵项:
具体来说,可以向模型逐个喂入样本,并计算损失函数,使用神经网络框架自动计算梯度。对于每个参数,累加所有的梯度,最后除以样本数量,即可得到对应参数的Fisher信息矩阵项。
用L2正则化对网络权重进行约束:
使用EWC算法的模型包含当前参数、旧任务参数和fisher信息矩阵。
当训练一个新的任务时,输入数据到模型,产生成本预测值,模型会再原有的损失函数上,加入一个新的Loss项,该损失项会根据模型的Fisher信息矩阵和旧任务参数去计算。假设旧任务为A,在使用EWC训练新任务B时的损失函数的公式如下:
其中,LB(θ)表示未添加EWC算法前,直接训练旧的训练集的损失函数,即树型准循环神经网络部分中提及的损失函数;Fi表示Fisher信息矩阵;θi表示训练新的数据集B时的网络权重;表示训练完旧的训练集A得到的最优权重;λ为L2的正则化系数。
当在新数据集上训练完毕后,模型的当前参数已经被更新,此时旧任务参数被更新为当前参数,以便下次训练时使用。同时模型使用当前参数对部分或者全部的数据进行预测,并使用原本的损失函数,计算Loss值,并计算梯度,并将这些计算出来的梯度取代模型的Fisher信息矩阵。
实施例二
本实施例提供了基于树型QRNN的数据库查询优化处理系统;
基于树型QRNN的数据库查询优化处理系统,包括:
获取模块,其被配置为:获取输入的结构化查询语句;
确定模块,其被配置为:确定所述结构化查询语句对应的执行计划,获取执行计划的树状结构,执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件;将执行计划树状结构中每一个节点对应的信息转化成特征向量;
处理模块,其被配置为:构建并训练查询优化器模型;所述查询优化器模型,包括:树型准循环神经网络和多层感知机;树型准循环神经网络是树状结构,树型准循环神经网络的树状结构中的节点与执行计划的树状结构中的节点是一一对应的;树型准循环神经网络的每个节点均采用准循环神经网络来实现,树型准循环神经网络的树状结构的根节点与多层感知机连接;查询优化器模型在训练时,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练的;
输出模块,其被配置为:将执行计划树状结构中每一个节点的特征向量输入到查询优化器模型的树型准循环神经网络的对应节点中,得到多层感知机输出的查询成本,基于查询成本确定目标执行计划。
此处需要说明的是,上述获取模块、确定模块、处理模块和输出模块对应于实施例一中的步骤S101至S104,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
所提出的系统,可以通过其他的方式实现。例如以上所描述的系统实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时,可以有另外的划分方式,例如多个模块可以结合或者可以集成到另外一个系统,或一些特征可以忽略,或不执行。
实施例三
本实施例还提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述实施例一所述的方法。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
实施例四
本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述的方法。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于树型QRNN的数据库查询优化处理方法,其特征是,包括:
获取输入的结构化查询语句;
确定所述结构化查询语句对应的执行计划,获取执行计划的树状结构,执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件;将执行计划树状结构中每一个节点对应的信息转化成特征向量;
构建并训练查询优化器模型;所述查询优化器模型,包括:树型准循环神经网络和多层感知机;树型准循环神经网络是树状结构,树型准循环神经网络的树状结构中的节点与执行计划的树状结构中的节点是一一对应的;树型准循环神经网络的每个节点均采用准循环神经网络来实现,树型准循环神经网络的树状结构的根节点与多层感知机连接;查询优化器模型在训练时,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练的;
将执行计划树状结构中每一个节点的特征向量输入到查询优化器模型的树型准循环神经网络的对应节点中,得到多层感知机输出的查询成本,基于查询成本确定目标执行计划。
2.如权利要求1所述的基于树型QRNN的数据库查询优化处理方法,其特征是,获取执行计划的树状结构,包括:
如果当前节点与邻接节点之间有父子节点的连接关系,则当前节点与节点之间存在连接关系;
如果当前节点与邻接节点之间无父子节点的连接关系,则当前节点与邻接节点之间不存在连接关系。
3.如权利要求1所述的基于树型QRNN的数据库查询优化处理方法,其特征是,将执行计划树状结构中每一个节点对应的信息转化成特征向量,具体包括:
对执行计划树状结构中每一个节点中的表、操作类型以及谓词条件,分别进行特征编码;
对被查询数据库统计信息中的直方图和最频值,分别进行特征编码;
将所有的特征编码结果串联到一起,得到特征向量。
4.如权利要求3所述的基于树型QRNN的数据库查询优化处理方法,其特征是,对执行计划树状结构中每一个节点中的表、操作类型以及谓词条件,分别进行特征编码,具体包括:
对表、操作类型这两种类型的信息进行one-hot编码,得到ET和EO;
在对谓词条件中的原子谓词条件进行编码时,采用one-hot编码与word2vec模型编码相结合的方式,对列、操作符采用one-hot编码的形式,对值采用word2vec模型编码的形式,并将二者串联起来,作为原子谓词的向量表示EA,
在对谓词条件中的复合谓词条件进行编码时,采用最大-最小池化操作对其中的原子谓词条件进行处理,对析取操作OR采用最大池化操作,对合取谓词AND采用最小池化操作,并将最后的输出结果作为谓词条件的特征嵌入向量表示EP。
5.如权利要求1所述的基于树型QRNN的数据库查询优化处理方法,其特征是,所述树型准循环神经网络,包括:
如果在执行计划的树状结构中当前节点与邻接节点相连,则与执行计划的树状结构对应的查询优化器模型的树型结构中,当前节点与邻接节点之间也存在连接关系;
如果在执行计划的树状结构中当前节点与邻接节点不相连,则与执行计划的树状结构对应的查询优化器模型的树型结构中,当前节点与邻接节点之间不存在连接关系。
6.如权利要求1所述的基于树型QRNN的数据库查询优化处理方法,其特征是,所述树型准循环神经网络的每个节点均采用准循环神经网络来实现,包括:
将树型准循环神经网络的所有节点根据节点所处位置划分为叶子节点、中间节点和根节点;根节点的输出端与多层感知机的输入端连接;根节点的输入端分别与左中间节点的输出端和右中间节点的输出端连接;左中间节点的输入端分别与左叶子节点的输出端和右叶子节点的输出端连接;
对于叶子节点而言,叶子节点所对应的准循环神经网络的输入值cl等于0,首个准循环神经网络的输入值cr等于0,叶子节点的准循环神经网络对输入值cl和输入值cr进行平均化处理,得到记忆单元ct-1;叶子节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到叶子节点的记忆单元ct;输入序列X是指当前准循环神经网络节点所对应的执行计划节点的特征向量;
对于中间节点而言,中间节点所对应的准循环神经网络的输入值cl等于与中间节点所连接的左叶子节点的记忆单元ct;中间节点所对应的准循环神经网络的输入值cr等于与中间节点所连接的右叶子节点的记忆单元ct,中间节点的准循环神经网络对输入值cl和输入值cr进行平均化处理,得到记忆单元ct-1;中间节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到中间节点的记忆单元ct;
对于根节点而言,根节点所对应的准循环神经网络的输入值cl等于与根节点所连接的左中间节点的记忆单元ct;根节点所对应的准循环神经网络的输入值cr等于与根节点所连接的右中间节点的记忆单元ct,根节点的准循环神经网络对输入值cl和输入值cr进行平均化处理,得到记忆单元Ct-1;根节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到根节点的记忆单元ct。
7.如权利要求6所述的基于树型QRNN的数据库查询优化处理方法,其特征是,所述叶子节点的准循环神经网络对记忆单元ct-1和输入序列X进行处理,得到叶子节点的记忆单元ct,具体包括:
对于输入序列X,分别通过三个卷积层和非线性层得到Z、F、O:
Z=tanh(Wz*X)
F=σ(Wf*X)
O=σ(Wo*X)
其中,*是卷积运算;Z是使用额外的内核库Wz获得的“输入门”输出;F是使用额外的内核库Wf获得的“忘记门”输出;O是使用额外的内核库Wf获得的“输出门”输出;
当卷积隐藏层的内核大小kernel_size=2时,公式表示为:
ct=ft⊙ct-1+(1-ft)⊙zt
ht=ot⊙ct
其中,忘记门ft决定准循环神经网络单元对当前时刻输入序列的保留程度;记忆单元ct决定准循环神经网络单元对从上一时刻传输过来的序列信息的保留程度;输出门ot决定准循环神经网络单元的输出。
8.基于树型QRNN的数据库查询优化处理系统,其特征是,包括:
获取模块,其被配置为:获取输入的结构化查询语句;
确定模块,其被配置为:确定所述结构化查询语句对应的执行计划,获取执行计划的树状结构,执行计划树状结构中的每一个节点包括表、操作类型和/或谓词条件;将执行计划树状结构中每一个节点对应的信息转化成特征向量;
处理模块,其被配置为:构建并训练查询优化器模型;所述查询优化器模型,包括:树型准循环神经网络和多层感知机;树型准循环神经网络是树状结构,树型准循环神经网络的树状结构中的节点与执行计划的树状结构中的节点是一一对应的;树型准循环神经网络的每个节点均采用准循环神经网络来实现,树型准循环神经网络的树状结构的根节点与多层感知机连接;查询优化器模型在训练时,是将历史执行计划作为样本数据、所述历史执行计划对应的实际查询成本作为目标值进行训练的;
输出模块,其被配置为:将执行计划树状结构中每一个节点的特征向量输入到查询优化器模型的树型准循环神经网络的对应节点中,得到多层感知机输出的查询成本,基于查询成本确定目标执行计划。
9.一种电子设备,其特征是,包括:
存储器,用于非暂时性存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,
其中,所述计算机可读指令被所述处理器运行时,执行上述权利要求1-7任一项所述的方法。
10.一种存储介质,其特征是,非暂时性地存储计算机可读指令,其中,当非暂时性计算机可读指令由计算机执行时,执行权利要求1-7任一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310120892.8A CN116150190A (zh) | 2023-02-15 | 2023-02-15 | 基于树型qrnn的数据库查询优化处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310120892.8A CN116150190A (zh) | 2023-02-15 | 2023-02-15 | 基于树型qrnn的数据库查询优化处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116150190A true CN116150190A (zh) | 2023-05-23 |
Family
ID=86353958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310120892.8A Pending CN116150190A (zh) | 2023-02-15 | 2023-02-15 | 基于树型qrnn的数据库查询优化处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116150190A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117874071A (zh) * | 2023-12-28 | 2024-04-12 | 电子科技大学长三角研究院(衢州) | 基于机器学习的数据库查询优化器代价模型 |
CN118469618A (zh) * | 2024-07-11 | 2024-08-09 | 四川大学 | 一种基于长短期记忆网络的零部件成本估算方法 |
CN118656395A (zh) * | 2024-08-19 | 2024-09-17 | 腾讯科技(深圳)有限公司 | 一种查询处理方法、装置、设备以及可读存储介质 |
CN119415973A (zh) * | 2025-01-03 | 2025-02-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、产品和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447152A (zh) * | 2018-10-29 | 2019-03-08 | 中国石油大学(华东) | 一种基于蒙特卡洛树搜索和神经网络的故障预测方法 |
CA2997797A1 (en) * | 2017-09-11 | 2019-03-11 | Tata Consultancy Services Limited | Bilstm-siamese network based classifier for identifying target class of queries and providing responses thereof |
CN109933602A (zh) * | 2019-02-28 | 2019-06-25 | 武汉大学 | 一种自然语言与结构化查询语言的转换方法及装置 |
CN113515539A (zh) * | 2021-06-02 | 2021-10-19 | 清华大学 | 一种数据库中数据的查询方法 |
CN115033597A (zh) * | 2022-06-29 | 2022-09-09 | 上海汇付支付有限公司 | 深度学习参与htap数据库执行sql优化的方法和系统 |
-
2023
- 2023-02-15 CN CN202310120892.8A patent/CN116150190A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2997797A1 (en) * | 2017-09-11 | 2019-03-11 | Tata Consultancy Services Limited | Bilstm-siamese network based classifier for identifying target class of queries and providing responses thereof |
CN109447152A (zh) * | 2018-10-29 | 2019-03-08 | 中国石油大学(华东) | 一种基于蒙特卡洛树搜索和神经网络的故障预测方法 |
CN109933602A (zh) * | 2019-02-28 | 2019-06-25 | 武汉大学 | 一种自然语言与结构化查询语言的转换方法及装置 |
CN113515539A (zh) * | 2021-06-02 | 2021-10-19 | 清华大学 | 一种数据库中数据的查询方法 |
CN115033597A (zh) * | 2022-06-29 | 2022-09-09 | 上海汇付支付有限公司 | 深度学习参与htap数据库执行sql优化的方法和系统 |
Non-Patent Citations (2)
Title |
---|
SHAYAN HASSANTABAR 等: "CURIOUS:Efficient Neural Architecture Search Based on a Performance Predictor and Evolutionary Search", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUIT AND SYSTEMS》, vol. 41, no. 11, 1 February 2022 (2022-02-01) * |
李苍: "基于朴素贝叶斯和LSTM循环神经网络的SQL注入检测技术研究", 《中国优秀硕士毕业生论文集信息科技辑》, 15 January 2019 (2019-01-15) * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117874071A (zh) * | 2023-12-28 | 2024-04-12 | 电子科技大学长三角研究院(衢州) | 基于机器学习的数据库查询优化器代价模型 |
CN118469618A (zh) * | 2024-07-11 | 2024-08-09 | 四川大学 | 一种基于长短期记忆网络的零部件成本估算方法 |
CN118469618B (zh) * | 2024-07-11 | 2024-09-24 | 四川大学 | 一种基于长短期记忆网络的零部件成本估算方法 |
CN118656395A (zh) * | 2024-08-19 | 2024-09-17 | 腾讯科技(深圳)有限公司 | 一种查询处理方法、装置、设备以及可读存储介质 |
CN118656395B (zh) * | 2024-08-19 | 2024-11-15 | 腾讯科技(深圳)有限公司 | 一种查询处理方法、装置、设备以及可读存储介质 |
CN119415973A (zh) * | 2025-01-03 | 2025-02-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、产品和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116150190A (zh) | 基于树型qrnn的数据库查询优化处理方法及系统 | |
Yuan et al. | Automatic view generation with deep learning and reinforcement learning | |
CN111581454B (zh) | 基于深度图压缩算法的并行查询表现预测系统及方法 | |
Marcus et al. | Bao: Learning to steer query optimizers | |
US8874548B2 (en) | Predicting query execution time | |
CN115617830A (zh) | 一种基于机器学习的数据查询优化处理方法及装置 | |
CN112434024B (zh) | 面向关系型数据库的数据字典生成方法、装置、设备及介质 | |
CN111444220A (zh) | 规则驱动和数据驱动相结合的跨平台sql查询优化方法 | |
CN113111058B (zh) | 一种数据库的处理方法和装置 | |
CN116244333B (zh) | 一种基于代价因子校准的数据库查询性能预测方法及系统 | |
US20210097044A1 (en) | Systems and methods for designing data structures and synthesizing costs | |
CN116937559A (zh) | 基于循环神经网络和张量分解的电力系统负荷预测系统和方法 | |
CN112883066B (zh) | 一种数据库上的多维范围查询基数估计方法 | |
Li et al. | A resource-aware deep cost model for big data query processing | |
CN119719424A (zh) | 数据血缘分析方法、装置、终端设备及计算机程序产品 | |
CN119886143A (zh) | 一种企业时序知识图谱实体对齐方法及系统 | |
CN103150626A (zh) | 基于程序依赖图的bpel过程一致性度量方法 | |
CN113220820B (zh) | 基于图的高效sparql查询应答方法、装置和设备 | |
CN119539145A (zh) | 一种基于XGBoost算法的电力行业碳排放预测方法及系统 | |
CN119294579A (zh) | 一种交通网络的节点优化方法及装置 | |
CN116861373A (zh) | 一种查询选择率估算方法、系统、终端设备及存储介质 | |
CN117113075A (zh) | 基于图注意力网络的查询优化领域代价估计方法 | |
CN115034514A (zh) | 一种基于元学习的小样本时序预测方法及系统 | |
Liu et al. | MSP: Learned Query Performance Prediction Using MetaInfo and Structure of Plans | |
Yan et al. | QCFE: an efficient feature engineering for query cost estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |