CN113297206A - 多表连接的处理方法、装置、设备及机器可读存储介质 - Google Patents
多表连接的处理方法、装置、设备及机器可读存储介质 Download PDFInfo
- Publication number
- CN113297206A CN113297206A CN202010762744.2A CN202010762744A CN113297206A CN 113297206 A CN113297206 A CN 113297206A CN 202010762744 A CN202010762744 A CN 202010762744A CN 113297206 A CN113297206 A CN 113297206A
- Authority
- CN
- China
- Prior art keywords
- execution plan
- sample
- detection
- network model
- node
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 238000003672 processing method Methods 0.000 title description 7
- 238000001514 detection method Methods 0.000 claims abstract description 272
- 238000000034 method Methods 0.000 claims abstract description 91
- 238000012545 processing Methods 0.000 claims abstract description 57
- 239000013598 vector Substances 0.000 claims description 151
- 238000012549 training Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 description 46
- 230000009471 action Effects 0.000 description 38
- 238000005457 optimization Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 13
- 230000015654 memory Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000007689 inspection Methods 0.000 description 5
- 230000002787 reinforcement Effects 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种多表连接的处理方法、装置、设备及机器可读存储介质,包括:根据检测多表连接查询请求生成第一检测执行计划;将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;基于所述第二检测执行计划进行多表连接查询处理。通过本申请的技术方案,能够寻找出较佳的执行计划,并对数据库的执行计划进行优化,提高数据库的多表连接查询效率。
Description
技术领域
本申请涉及互联网技术领域,尤其是涉及一种多表连接的处理方法、装置、设备及机器可读存储介质。
背景技术
随着大规模数据库和数据仓库的出现,数据库的规模日益增大,如何找到满足用户查询要求的执行计划,并提高数据库查询效率,成为当前研究的热点问题。比如说,在数据库的应用场景中,可以部署查询优化器,该查询优化器可以接收SQL(Structured QueryLanguage,结构化查询语言)查询请求,并能够自动生成该SQL查询请求对应的高效执行计划,从而提高数据库查询效率。
多表连接查询是SQL的典型应用,在数据库中频繁使用,多表连接查询涉及多个数据表,多个数据表的不同连接顺序对应不同执行计划,且这些执行计划的性能差别较大,因此,需要从这些执行计划中选取出最优执行计划。
为了从这些执行计划中选取最优执行计划,可以估算每个执行计划的性能,并将性能最优的执行计划作为最优执行计划。但是,估算每个执行计划的性能的时间较长,且估计结果可能不准确,导致无法选取出性能最优的执行计划。
发明内容
本申请提供一种多表连接的处理方法,所述方法包括:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
本申请提供一种多表连接的处理方法,所述方法包括:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
本申请提供一种多表连接的处理装置,所述装置包括:
生成模块,用于根据样本多表连接查询请求生成第一样本执行计划;
输入模块,用于将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
所述生成模块,还用于基于所述第二样本特征生成第二样本执行计划;所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
训练模块,用于基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
本申请提供一种多表连接的处理装置,所述装置包括:
生成模块,用于根据检测多表连接查询请求生成第一检测执行计划;输入模块,用于将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据所述第一检测特征获得第二检测特征;所述生成模块,还用于基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;处理模块,用于基于所述第二检测执行计划进行多表连接查询处理。
本申请提供一种多表连接的处理设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
本申请提供一种多表连接的处理设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
本申请提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
本申请提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
基于上述技术方案,本申请实施例中,可以将第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据第一检测特征获得第二检测特征,并基于第二检测特征生成第二检测执行计划,从而得到性能较优的第二检测执行计划,并基于第二检测执行计划进行多表连接查询处理。上述方式能够通过目标网络模型获得性能较优的执行计划,从而寻找出较佳的执行计划,并对数据库的执行计划进行优化,提高数据库的多表连接查询效率,继而获得更好的执行性能,即更短的执行时延,以此提升查询的执行性能。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的多表连接的处理方法的流程示意图;
图2是本申请一种实施方式中的多表连接的处理方法的流程示意图;
图3是本申请实施例的应用场景示意图;
图4是本申请一种实施方式中的训练过程的示意图;
图5是本申请一种实施方式中的DQN模型的示意图;
图6是本申请一种实施方式中的检测过程的示意图;
图7A和图7B是本申请一种实施方式中的多表连接的处理装置的结构图;
图8是本申请一种实施方式中的多表连接的处理设备的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种多表连接的处理方法,该方法可以应用于任意类型的设备,参见图1所示,为该方法的流程示意图,该方法可以包括:
步骤101,根据样本多表连接查询请求生成第一样本执行计划。
步骤102,将该第一样本执行计划对应的第一样本特征输入给初始网络模型,由该初始网络模型根据该第一样本特征获得第二样本特征。
示例性的,在步骤102之前,还可以基于该第一样本执行计划生成第一样本特征,该第一样本特征可以包括但不限于:信息特征和/或结构特征。比如说,该第一样本执行计划可以包括多个操作节点,该信息特征用于表示单一操作节点的节点信息,该结构特征用于表示操作节点之间的关系信息。
示例性的,该信息特征可以包括但不限于以下向量的至少一种:
表向量;第一样本执行计划可以包括数据表标识,该表向量中与该数据表标识对应的位置为第一取值(如1等),该表向量中未与该数据表标识对应的位置为第二取值(如0等)。其中,该表向量可以存在N个位置,N为数据库中数据表的总数量,该表向量的N个位置与N个数据表一一对应。
列向量;第一样本执行计划可以包括列标识,该列向量中与该列标识对应的位置为第一取值,而该列向量中未与该列标识对应的位置为第二取值。其中,该列向量存在M个位置,M为数据库中各数据表的列的总数量(即所有数据表的所有列的总数量),该列向量的M个位置与M个列一一对应。
操作节点的操作类型向量,即每个操作节点对应一个操作类型向量。针对每个操作节点的操作类型向量来说,该操作类型向量可以存在P个操作类型位置和Q个操作对象位置,P为操作类型总数量,P个操作类型位置与P个操作类型一一对应,Q为操作对象总数量,Q个操作对象位置与Q个操作对象一一对应。基于此,P个操作类型位置中与该操作节点的操作类型对应的位置为第一取值,而P个操作类型位置中未与该操作节点的操作类型对应的位置为第二取值。Q个操作对象位置中与该操作节点的操作对象对应的位置为第一取值,而Q个操作对象位置中未与该操作节点的操作对象对应的位置为第二取值。
示例性的,第一样本执行计划中的各操作节点均具有唯一的节点标识,即每个操作节点对应一个节点标识。基于此,上述结构特征可以包括但不限于各操作节点的关系向量,针对每个操作节点的关系向量来说,该操作节点的关系向量可以包括但不限于:该操作节点的节点标识,该操作节点的父节点(即上游节点)的节点标识,该操作节点的孩子节点(即下游节点)的节点标识。
步骤103,基于该第二样本特征生成第二样本执行计划;其中,该第二样本执行计划中的连接顺序与该第一样本执行计划中的连接顺序不同。
示例性的,在将第一样本执行计划对应的第一样本特征输入给初始网络模型后,初始网络模型可以根据第一样本特征对第一样本执行计划中的连接顺序进行调整,得到第二样本执行计划对应的第二样本特征,因此,在基于该第二样本特征生成第二样本执行计划后,该第二样本执行计划中的连接顺序与该第一样本执行计划中的连接顺序不同,从而达到对连接顺序进行优化的目的。
步骤104,基于第一样本执行计划的性能和第二样本执行计划的性能对该初始网络模型进行训练,得到已训练的目标网络模型。示例性的,初始网络模型是用于对执行计划中的连接顺序进行优化调整的网络模型,且目标网络模型也是用于对执行计划中的连接顺序进行优化调整的网络模型。
在一种可能的实施方式中,可以确定当前的初始网络模型是否已收敛。
若否,则可以基于该第一样本执行计划的性能和该第二样本执行计划的性能,对该初始网络模型的网络参数进行调整,得到调整后的初始网络模型;基于调整后的初始网络模型,返回执行将第一样本执行计划对应的第一样本特征输入给初始网络模型的操作;其中,该第二样本执行计划的性能可以为估算的性能,或者,执行该第二样本执行计划时采集的性能。
若是,则将当前的初始网络模型确定为已训练的目标网络模型。
在一种可能的实施方式中,在得到已训练的目标网络模型之后,可以部署该目标网络模型,基于此,可以获取检测多表连接查询请求,根据该检测多表连接查询请求生成第一检测执行计划,并基于该第一检测执行计划生成第一检测特征。然后,将该第一检测特征输入给目标网络模型,由目标网络模型根据该第一检测特征获得第二检测特征。基于该第二检测特征生成第二检测执行计划;其中,该第二检测执行计划中的连接顺序与该第一检测执行计划中的连接顺序不同或相同。然后,基于该第二检测执行计划进行多表连接查询处理。
示例性的,第一检测特征可以包括但不限于:信息特征和/或结构特征;该第一检测执行计划可以包括多个操作节点,该信息特征可以用于表示单一操作节点的节点信息,该结构特征可以用于表示操作节点之间的关系信息。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,可以将第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据第一检测特征获得第二检测特征,并基于第二检测特征生成第二检测执行计划,从而得到性能较优的第二检测执行计划,并基于第二检测执行计划进行多表连接查询处理。上述方式能够通过目标网络模型获得性能较优的执行计划,从而寻找出较佳的执行计划,并对数据库的执行计划进行优化,提高数据库的多表连接查询效率,继而获得更好的执行性能,即更短的执行时延,以此提升查询的执行性能。
基于与上述方法同样的申请构思,本申请实施例中还提出另一种多表连接的处理方法,参见图2所示,为该方法的流程示意图,该方法可以包括:
步骤201,根据检测多表连接查询请求生成第一检测执行计划。
步骤202,将该第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据该第一检测特征获得第二检测特征。
示例性的,在步骤202之前,还可以基于该第一检测执行计划生成第一检测特征,该第一检测特征可以包括但不限于:信息特征和/或结构特征。比如说,该第一检测执行计划可以包括多个操作节点,该信息特征用于表示单一操作节点的节点信息,该结构特征用于表示操作节点之间的关系信息。
示例性的,该信息特征可以包括但不限于以下向量的至少一种:
表向量;第一检测执行计划可以包括数据表标识,该表向量中与该数据表标识对应的位置为第一取值(如1等),该表向量中未与该数据表标识对应的位置为第二取值(如0等)。其中,该表向量可以存在N个位置,N为数据库中数据表的总数量,该表向量的N个位置与N个数据表一一对应。
列向量;第一检测执行计划可以包括列标识,该列向量中与该列标识对应的位置为第一取值,而该列向量中未与该列标识对应的位置为第二取值。其中,该列向量存在M个位置,M为数据库中各数据表的列的总数量(即所有数据表的所有列的总数量),该列向量的M个位置与M个列一一对应。
操作节点的操作类型向量,即每个操作节点对应一个操作类型向量。针对每个操作节点的操作类型向量来说,该操作类型向量可以存在P个操作类型位置和Q个操作对象位置,P为操作类型总数量,P个操作类型位置与P个操作类型一一对应,Q为操作对象总数量,Q个操作对象位置与Q个操作对象一一对应。基于此,P个操作类型位置中与该操作节点的操作类型对应的位置为第一取值,而P个操作类型位置中未与该操作节点的操作类型对应的位置为第二取值。Q个操作对象位置中与该操作节点的操作对象对应的位置为第一取值,而Q个操作对象位置中未与该操作节点的操作对象对应的位置为第二取值。
示例性的,第一检测执行计划中的各操作节点均具有唯一的节点标识,即每个操作节点对应一个节点标识。基于此,上述结构特征可以包括但不限于各操作节点的关系向量,针对每个操作节点的关系向量来说,该操作节点的关系向量可以包括但不限于:该操作节点的节点标识,该操作节点的父节点(即上游节点)的节点标识,该操作节点的孩子节点(即下游节点)的节点标识。
步骤203,基于该第二检测特征生成第二检测执行计划;其中,该第二检测执行计划中的连接顺序与该第一检测执行计划中的连接顺序不同或相同。
示例性的,在将第一检测执行计划对应的第一检测特征输入给目标网络模型后,若第一检测执行计划不是最优的执行计划(即第一检测执行计划中的连接顺序不是最优连接顺序),则目标网络模型可以根据第一检测特征对第一检测执行计划中的连接顺序进行调整,得到第二检测执行计划对应的第二检测特征,因此,在基于该第二检测特征生成第二检测执行计划后,该第二检测执行计划中的连接顺序与该第一检测执行计划中的连接顺序可以不同,从而达到对连接顺序进行优化的目的。若第一检测执行计划已经是最优的执行计划(即第一检测执行计划中的连接顺序已经是最优连接顺序),则目标网络模型不对第一检测执行计划中的连接顺序进行调整,将第一检测特征直接作为第二检测特征,因此,在基于该第二检测特征生成第二检测执行计划后,该第二检测执行计划中的连接顺序与该第一检测执行计划中的连接顺序可以相同。
步骤204,基于该第二检测执行计划进行多表连接查询处理。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,可以将第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据第一检测特征获得第二检测特征,并基于第二检测特征生成第二检测执行计划,从而得到性能较优的第二检测执行计划,并基于第二检测执行计划进行多表连接查询处理。上述方式能够通过目标网络模型获得性能较优的执行计划,从而寻找出较佳的执行计划,并对数据库的执行计划进行优化,提高数据库的多表连接查询效率,继而获得更好的执行性能,即更短的执行时延,以此提升查询的执行性能。
以下结合具体的应用场景,对上述多表连接的处理方法进行说明。
参见图3所示,为本申请实施例的应用场景示意图,客户端可以是终端设备(如PC(Personal Computer,个人计算机)、笔记本电脑、移动终端)包括的APP(Application,应用),也可以是终端设备包括的浏览器,对此不做限制。
查询设备用于实现本申请实施例的多表连接的处理方法,由于用户数据存储在多个数据库(即数据源)中,因此,通过查询设备来连接各个数据库,从各个数据库中读取数据,以支撑跨数据库的数据处理。在使用查询设备时,用户通常会用查询语言(如SQL)来描述查询任务,然后交由查询设备执行。查询设备具有查询优化功能,能自动挑选出合理的执行计划来处理用户查询。
针对多个数据库来说,这些数据库可以是相同类型的数据库,也可以是不同类型的数据库。此外,这些数据库可以是关系型数据库,也可以是非关系型数据库。比如说,对于每个数据库来说,这个数据库的类型可以包括但不限于:OSS(Object Storage Service,对象存储服务)、TableStore(表格存储)、HBase(Hadoop Database,Hadoop数据库)、HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)、MySQL(即关系型数据库)、RDS(Relational Database Service,关系型数据库服务)、DRDS(Distribute RelationalDatabase Service,分布式关系型数据库服务)、RDBMS(Relational Database ManagementSystem,关系数据库管理系统)、SQLServer(即关系型数据库)、PostgreSQL(即对象关系型数据库),MongoDB(即基于分布式文件存储的数据库)等。
在数据库的应用场景中,查询设备包括查询优化器(也可以称为解析器)和执行器,查询优化器用于接收SQL查询请求,并自动生成该SQL查询请求对应的执行计划。执行器用于执行该执行计划,从而实现数据查询功能。
多表连接查询是SQL的典型应用,在数据库中频繁使用,多表连接查询涉及多个数据表,多个数据表的不同连接顺序对应不同执行计划,且这些执行计划的性能差别较大,因此,需要从这些执行计划中选取出最优执行计划。
比如说,多表连接查询涉及数据表1、数据表2和数据表3,查询优化器可以生成执行计划1、执行计划2和执行计划3。在执行计划1中,先对数据表1和数据表2进行连接操作,得到中间数据表A,然后,对中间数据表A和数据表3进行连接操作,得到结果数据表,并在结果数据表的基础上进行查询操作。在执行计划2中,先对数据表1和数据表3进行连接操作,得到中间数据表B,然后,对中间数据表B和数据表2进行连接操作,得到结果数据表,并在结果数据表的基础上进行查询操作。在执行计划3中,先对数据表2和数据表3进行连接操作,得到中间数据表C,然后,对中间数据表C和数据表1进行连接操作,得到结果数据表,并在结果数据表的基础上进行查询操作。
显然,在执行计划1、执行计划2和执行计划3中,不同执行计划中的连接顺序可以不同,导致不同的执行计划的性能差别较大。
在相关技术中,为了从执行计划1、执行计划2和执行计划3中选取最优执行计划,可以估算执行计划1的性能,执行计划2的性能,执行计划2的性能,若执行计划1的性能最优,则将执行计划1作为最优执行计划。但是,当存在大量执行计划(如几百甚至上千)时,依次估算每个执行计划的性能,需要花费比较长的时间,且估计结果可能不准确,导致无法选取性能最优的执行计划。
针对上述发现,本实施例中提出一种基于深度强化学习(Deep ReinforcementLearning,DRL)的连接顺序优化方法,能够利用深度强化学习选择连接顺序,可在较少的计算复杂度下根据以往经验找到最优的连接顺序。深度强化学习擅长感知数据的分布和相关性,利用深度强化学习选择连接顺序,可克服传统优化方法中对现实数据的错误假设。深度强化学习擅长决策,并能在决策过程中根据奖惩情况优化未来的决策能力,因此,可以将不同连接顺序的执行计划作为可优化的状态,将调整连接顺序作为可选择的动作,将执行计划的性能(如执行时延)作为相应的回报,根据回报大小来优化模型未来的动作决策。
本实施例中,可以将特征区分为信息特征和结构特征,信息特征表示执行计划中单一操作节点的基本信息,结构特征表示执行计划中操作节点间的亲子关系信息,也就是说,通过对执行计划的树形结构进行特征编码,得到结构特征,该结构特征有效保留执行计划的树结构信息。通过信息特征和结构特征能够有效地表示任一执行计划的特征信息,能够充分地利用执行计划的状态信息以及回报与动作之间的关系来优化连接顺序,以此提升查询的执行性能。
本实施例涉及训练过程和检测过程,在训练过程中,基于多表连接查询请求对初始网络模型进行训练,得到已训练的目标网络模型。在检测过程中,基于已训练的目标网络模型得到执行计划,以下对训练过程和检测过程进行说明。为了区分方便,本文将训练过程中的多表连接查询请求称为样本多表连接查询请求,将训练过程中的执行计划称为样本执行计划,将训练过程中的特征称为样本特征。将检测过程中的多表连接查询请求称为检测多表连接查询请求,将检测过程中的执行计划称为检测执行计划,将检测过程中的特征称为检测特征。
参见图4所示,为训练过程的示意图,可以预先搭建优化框架流程,从左至右的组件可以分为数据库实例、特征编码、DQN模型三部分。数据库实例可以是PostgreSQL、MySQL等数据库,用作数据的存储、SQL的解析、查询的执行等作用。特征编码可以用信息特征和结构特征表示一棵查询计划树,将其作为DQN模型中Tree-LSTM网络的特征输入。DQN模型分为智能体和环境,智能体产生动作,是动作的决策者,环境根据智能体的动作调整连接顺序,并且给每个动作进行评估。参见图4所示,该训练过程可以包括以下步骤:
步骤s11、查询优化器获取样本多表连接查询请求。
示例性的,历史日志中存在大量SQL查询请求,可以从这些SQL查询请求中选取出多表连接查询请求(即SQL多表连接查询请求,是涉及多个数据表的SQL连接查询请求),将该多表连接查询请求记为样本多表连接查询请求。
比如说,可以通过正则匹配方式从这些SQL查询请求中选取出样本多表连接查询请求,当然,正则匹配的实现方式只是示例,如可以由用户选取出样本多表连接查询请求,对此不做限制,只要能够从SQL查询请求中选取出样本多表连接查询请求即可,而样本多表连接查询请求作为初始网络模型的训练数据。
在实际应用中,历史日志中可能会出现不同谓词的相似SQL查询请求,例如,[SPJ结构]WHERE a<100和[SPJ结构]WHERE a<110,上述两个SQL查询请求的执行计划基本一致,且执行时延也十分接近。如果将这两个SQL查询请求均作为样本多表连接查询请求参与模型训练,则这两个SQL查询请求的训练结果一致,不会提升模型的训练性能,但是,会增加模型的训练时长,因此,应该避免将这两个SQL查询请求均作为样本多表连接查询请求。基于此,可以基于这两个SQL查询请求生成一个新SQL查询请求[SPJ结构]WHERE a<#,将该一个SQL查询请求作为样本多表连接查询请求参与模型训练即可。
步骤s12、查询优化器将样本多表连接查询请求转换为第一样本执行计划。
示例性的,样本多表连接查询请求的数量可以为多个,针对每个样本多表连接查询请求,将该样本多表连接查询请求转换为第一样本执行计划,即每个样本多表连接查询请求对应一个第一样本执行计划,为了方便描述,后续实施例中,以一个样本多表连接查询请求对应的一个第一样本执行计划为例。
示例性的,样本多表连接查询请求是用户编写的SQL类型的查询请求,查询优化器可以将这个样本多表连接查询请求转换为机器可执行的第一样本执行计划,对此转换过程不做限制,第一样本执行计划描述了一个具体执行步骤。
示例性的,第一样本执行计划可以包括多个操作节点,每个操作节点可以表示一个计算步骤。例如,扫描操作节点(如Seq Scan、Index Scan、Index Only Scan、位图扫描等);连接操作节点(如Join、Nested Loop、Hash Join、Merge Join等);物化操作节点(如Materialize);排序操作节点(如Sort);分组操作节点(如Group);聚合操作节点(如Aggregate);过滤操作节点(如Filter);投影操作节点(如Projection);追加操作节点(如Append)等。当然,上述只是操作节点的几个示例,还可以包括其它类型的操作节点,对此不做限制。
在一种可能的实施方式中,可以采用树形结构对第一样本执行计划的多个操作节点进行排列,对此排列方式不做限制。在对第一样本执行计划的多个操作节点进行排列后,执行第一样本执行计划的过程,就是从第一样本执行计划的最下层操作节点(即底层操作节点)开始,依次执行每个操作节点的过程。
比如说,样本多表连接查询请求涉及数据表1、数据表2和数据表3的查询操作,查询优化器可以将样本多表连接查询请求转换为第一样本执行计划,该第一样本执行计划可以参见图4所示,该第一样本执行计划可以包括多个操作节点,且采用树形结构对第一样本执行计划的多个操作节点进行排列。
在图4中,将数据表1位置的操作节点记为操作节点1,操作节点1可以是扫描操作节点,表示需要扫描数据表1中的数据。将数据表2位置的操作节点记为操作节点2,操作节点2可以是扫描操作节点,表示需要扫描数据表2中的数据。将连接1位置的操作节点记为操作节点3,操作节点3可以是连接操作节点(即Join节点),表示需要对数据表1和数据表2进行连接操作,得到中间数据表A。将数据表3位置的操作节点记为操作节点4,操作节点4可以是扫描操作节点,表示需要扫描数据表3中的数据。将连接2位置的操作节点记为操作节点5,操作节点5可以是连接操作节点,表示需要对中间数据表A和数据表3进行连接操作,得到结果数据表,后续基于结果数据表进行查询操作。
步骤s13、查询优化器基于第一样本执行计划生成第一样本特征,该第一样本特征可以包括但不限于:信息特征(也可以称为向量列表特征),和/或,结构特征(也可以称为树字典特征)。示例性的,该信息特征用于表示单一操作节点的节点信息,该结构特征用于表示操作节点之间的关系信息。
查询优化器得到第一样本执行计划后,对第一样本执行计划进行特征编码,得到信息特征和结构特征。特征编码是指将输入信息(本文是第一样本执行计划)提取特征,转化成模型可接受的输入向量(本文是信息特征和结构特征)。
以下结合具体应用场景,对第一样本特征的生成过程进行说明。
在步骤s13之前,可以对所有数据库中的所有数据表进行编号,假设所有数据库中一共存在10个数据表,则这10个数据表的编号依次为1-10,编号1对应数据表1,编号2对应数据表2,以此类推,编号10对应数据表10。
在步骤s13之前,可以对所有数据表中的所有列进行编号,假设一共存在10个数据表,每个数据表存在3列,则一共存在30列,这30列的编号依次为1-30,编号1对应数据表1的列1,编号2对应数据表1的列2,编号3对应数据表1的列3,编号4对应数据表2的列1,编号5对应数据表2的列2,编号6对应数据表2的列3,以此类推,编号30对应数据表10的列3。
在上述实施例中,数据表1是指数据表的表名称,如教师表,学生表等,为了方便描述,本文将数据表的表名称记为数据表1。同理,数据表2、数据表3等也是数据表的表名称。数据表1的列1是指数据表1的第一列的列名称,如姓名,身份证号等,为了方便描述,本文将数据表1的列名称记为数据表1的列1。同理,数据表1的列2、数据表1的列3、数据表2的列1等也是列名称。
在步骤s13之前,可以对针对所有数据库的所有操作类型进行编号,假设一共存在9种操作类型,则这9种操作类型的编号依次为1-9,编号1对应操作类型1,编号2对应操作类型2,以此类推,编号9对应操作类型9。比如说,操作类型1为扫描操作类型,操作类型2为连接操作类型,操作类型3为物化操作类型,操作类型4为排序操作类型,操作类型5为分组操作类型,操作类型6为聚合操作类型,操作类型7为过滤操作类型,操作类型8为投影操作类型,操作类型9为追加操作类型。当然,上述只是操作类型的示例,对此不做限制。
在步骤s13中,查询优化器可以对第一样本执行计划进行特征编码,得到信息特征,该信息特征包括表向量,列向量和每个操作节点的操作类型向量。
示例性的,假设第一样本执行计划涉及数据表1、数据表2和数据表3的查询操作,则表向量的示例可以参见表格1所示,该表向量中与数据表1、数据表2、数据表3对应的位置为第一取值(如1),其它位置为第二取值(如0)。从表格1可以看出,由于数据库中所有数据表的总数量为10,因此,表向量中一共存在10个位置,该表向量的10个位置与10个数据表一一对应。
表格1
编号1 | 编号2 | 编号3 | 编号4 | 编号5 | 编号6 | 编号7 | 编号8 | 编号9 | 编号10 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
示例性的,假设第一样本执行计划涉及数据表1的列1和列2、数据表2的列1和列3、数据表3的列3的查询操作,则列向量的示例参见表格2所示,列向量中与数据表1的列1(对应编号1)、数据表1的列2(对应编号2)、数据表2的列1(对应编号4)、数据表2的列3(对应编号6)、数据表3的列3(对应编号9)对应的位置为第一取值(如1),其它位置为第二取值(如0)。从表格2可以看出,由于所有数据表的所有列的总数量为30,因此,列向量中一共可以存在30个位置,该列向量的30个位置与30个列一一对应。
表格2
编号1 | 编号2 | 编号3 | 编号4 | 编号5 | 编号6 | 编号7 | 编号8 | 编号9 | 编号10 |
1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
编号11 | 编号12 | 编号13 | 编号14 | 编号15 | 编号16 | 编号17 | 编号18 | 编号19 | 编号20 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
编号21 | 编号22 | 编号23 | 编号24 | 编号25 | 编号26 | 编号27 | 编号28 | 编号29 | 编号30 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
示例性的,第一样本执行计划包括5个操作节点,信息特征包括每个操作节点的操作类型向量。由于操作类型总数量为9,操作对象总数量(以数据表的列为操作对象为例,操作对象总数量为所有数据表的所有列的总数量)为30,因此,该操作类型向量存在9个操作类型位置和30个操作对象位置,9个操作类型位置与9个操作类型一一对应,30个操作对象位置与30个列一一对应。
参见图4所示,针对操作节点1来说,操作节点1的操作类型是扫描操作类型,操作节点1的操作对象是数据表1的列1和列2,因此,操作节点1的操作类型向量的示例参见表格3所示,该操作类型向量中与“扫描操作类型”对应的位置为第一取值(如1),该操作类型向量中与“数据表1的列1和列2”对应的位置为第一取值(如1),其它位置为第二取值(如0)。
表格3
操作节点2的操作类型向量与操作节点1的操作类型向量类似,在此不再赘述。针对操作节点3来说,操作节点3的操作类型是连接操作类型,操作节点3的操作对象是数据表1的列1和列2,数据表2的列1和列3,因此,操作节点3的操作类型向量的示例参见表格4所示,该操作类型向量中与“连接操作类型”对应的位置为第一取值,该操作类型向量中与“数据表1的列1和列2、数据表2的列1和列3”对应的位置为第一取值,其它位置为第二取值。
表格4
操作节点4的操作类型向量与操作节点1的操作类型向量类似,在此不再赘述。针对操作节点5来说,操作节点5的操作类型是连接操作类型,操作节点5的操作对象是数据表1的列1和列2,数据表2的列1和列3,数据表3的列3,因此,操作节点3的操作类型向量中与“连接操作类型”对应的位置为第一取值,该操作类型向量中与“数据表1的列1和列2、数据表2的列1和列3、数据表3的列3”对应的位置为第一取值,其它位置为第二取值。
在上述实施例中,由于操作节点3是操作节点1和操作节点2的父节点,因此,将操作节点1的操作对象和操作节点2的操作对象,作为操作节点3的操作对象。由于操作节点5是操作节点3和操作节点4的父节点,因此,将操作节点3的操作对象和操作节点4的操作对象,作为操作节点5的操作对象。
综上所述,信息特征包括表向量(表格1),列向量(表格2),操作节点1的操作类型向量(表格3),操作节点2的操作类型向量,操作节点3的操作类型向量(表格4),操作节点4的操作类型向量,操作节点5的操作类型向量。
针对第一样本执行计划中的每个操作节点,信息特征中包括该操作节点的操作类型向量,该操作类型向量能够表示该操作节点的操作类型和操作对象,而操作对象通常是数据表中的某一列,或下层节点传上来的数据。
上述将某个位置置为第一取值或第二取值的编码方式,是one-hot(独热)编码方式,在实际应用中,还可以采用其它编码方式,对此不做限制。
在步骤s13中,查询优化器可以对第一样本执行计划进行特征编码,得到结构特征,该结构特征可以包括但不限于每个操作节点的关系向量。
示例性的,第一样本执行计划包括5个操作节点,该结构特征包括这5个操作节点的关系向量。操作节点1的关系向量包括:操作节点1的节点标识,操作节点1的父节点(操作节点3)的节点标识。操作节点2的关系向量包括:操作节点2的节点标识,操作节点2的父节点(操作节点3)的节点标识。操作节点3的关系向量包括:操作节点3的节点标识,操作节点3的父节点(操作节点5)的节点标识,操作节点3的孩子节点(操作节点1和操作节点2)的节点标识。操作节点4的关系向量包括:操作节点4的节点标识,操作节点4的父节点(操作节点5)的节点标识。操作节点5的关系向量包括:操作节点5的节点标识,操作节点5的孩子节点(操作节点3和操作节点4)的节点标识。
显然,基于上述5个操作节点的关系向量,能够得出操作节点之间的位置关系,并能够还原出图4所示的第一样本执行计划,即树形结构的执行计划。
综上所述,查询优化器通过对第一样本执行计划进行特征编码,可以得到信息特征和结构特征,信息特征是由表向量,列向量,每个操作节点的操作类型向量组成的向量列表,结构特征是每个操作节点的关系向量。显然,由于信息特征并不能还原出树形结构的执行计划,因此,将信息特征与结构特征(用于记录孩子节点和父节点的信息)结合,就能够还原出树形结构的执行计划。
综上所述,可以先确定用户需要进行连接优化的数据库实例,并对数据库实例中的表名称、列名称、操作类型等信息编号。对于查询计划树(即样本执行计划)的一个操作节点,它指明了操作类型,如Hash Join、Index Scan、Group等。除此以外,还有操作对象,操作对象通常是某表中的某一列关系,或者下层节点传上来的数据。这些信息编号之后可以对操作节点进行one-hot编码,即向量中涉及相应的操作、表、列就将该向量相应的位置1,并且子节点的信息需要向上传递给它的父亲节点。对查询计划树的操作节点进行后序遍历之后,得到的向量排列对应模型网络的向量列表(即上述实施例中的信息特征),单个向量的维度是数据库实例中的表、列、操作种类数之和。如果需要进行DDL操作,可以给向量维度预先留一点空间。如果只有向量列表,并不能将向量列表的信息还原成相应的树结构,所以,还需要记录操作的父亲节点与孩子节点信息,采用字典方式存储,对应树字典(即上述实施例中的结构特征)。树字典和向量列表完整表示了一棵查询计划树,它们是Tree-LSTM网络的特征输入。
步骤s14、查询优化器将第一样本特征(即信息特征和结构特征)输入给初始网络模型,由初始网络模型根据该第一样本特征获得第二样本特征。
示例性的,在将第一样本执行计划对应的第一样本特征输入给初始网络模型后,初始网络模型可以根据第一样本特征对第一样本执行计划中的连接顺序进行调整,得到第二样本执行计划对应的第二样本特征,也就是说,该第二样本执行计划中的连接顺序与该第一样本执行计划中的连接顺序不同。
参见图4所示,DQN(Deep-Q-learning,深度强化学习)模型又称为增强学习模型,可以在决策过程中学习知识,DQN模型可以包括但不限于Tree-LSTM(Tree Long Short-Term Memory,树长短时记忆)网络,动作执行模块和评估模块,Tree-LSTM网络是一种深度学习网络,适用于树结构输入的任务。
本申请实施例中,初始网络模型可以为Tree-LSTM网络结构的模型,即该Tree-LSTM网络作为初始网络模型。当然,Tree-LSTM网络只是示例,对此不做限制,初始网络模型可以为任意结构的模型,本文以Tree-LSTM网络为例。
综上所述,可以将信息特征和结构特征作为Tree-LSTM网络的输入特征。
参见图4所示,DQN模型可以分为智能体和环境,智能体产生动作,是动作的决策者,环境可以根据智能体的动作调整连接顺序,并且给每个动作进行评估。参见图5所示,示出了DQN模型中智能体的实现,其结构是Tree-LSTM网络,对于每个神经单元,Tree-LSTM网络均包含一个输入门、输出门、记忆细胞和隐层状态,Tree-LSTM网络的门向量和记忆细胞的更新依赖于其子节点的状态,并且每个子节点对于父节点都有一个遗忘门,参见如下公式所示。
在上述公式中,{W,U,b}表示网络参数(即训练过程中需要调整的网络参数),x和h是输入向量和隐层向量,l和n分别表示孩子节点编号和孩子总数,上述公式表示第k个孩子的遗忘门输出结果,这种设计使得Tree-LSTM网络可以选择性地记忆来自子节点的信息,从而保留其亲子关系特征。
基于上述网络结构,本实施例中,在得到信息特征和结构特征后,可以将信息特征和结构特征输入给Tree-LSTM网络,参见图5所示,除了信息特征和结构特征作为Tree-LSTM网络的输入,还存在一个剩余状态的输入,该剩余状态的输入表示是否还需要进行优化,即基于第一样本特征的优化是否完成。
Tree-LSTM网络接收到信息特征和结构特征后,利用自身的网络参数对信息特征和结构特征进行处理,对此处理过程不做限制。基于处理结果,Tree-LSTM网络输出一个动作,该动作表示需要调整的连接编号,即表示如何对信息特征和结构特征进行调整,而信息特征和结构特征的调整过程,实际上就是调整执行计划中的连接顺序,即,将第一样本执行计划对应的第一样本特征调整为第二样本执行计划对应的第二样本特征,且第二样本执行计划中的连接顺序与第一样本执行计划中的连接顺序不同。基于Tree-LSTM网络输出的动作,动作执行模块根据该动作将第一样本特征调整为第二样本特征,并更新剩余状态信息,将第一样本特征调整为第二样本特征的过程,是连接顺序的调整过程。
关于将第一样本特征调整为第二样本特征的过程,与Tree-LSTM网络的结构和功能有关,对此调整过程不做限制。参见图4所示,第一样本特征表示先对数据表1和数据表2进行连接操作,得到中间数据表,然后,对中间数据表和数据表3进行连接操作,得到结果数据表。将第一样本特征调整为第二样本特征后,第二样本特征表示先对数据表1和数据表3进行连接操作,得到中间数据表,然后,对中间数据表和数据表2进行连接操作,得到结果数据表。
步骤s15、基于第二样本特征生成第二样本执行计划;其中,该第二样本执行计划中的连接顺序与该第一样本执行计划中的连接顺序不同。
示例性的,得到第二样本特征后,将第二样本特征还原成第二样本执行计划,比如说,第二样本特征包括表向量(与第一样本特征的表向量相同),列向量(与第一样本特征的列向量相同),操作节点1的操作类型向量(与第一样本特征的操作节点1的操作类型向量相同),操作节点2的操作类型向量(与第一样本特征的操作节点4的操作类型向量相同),操作节点3的操作类型向量(操作对象为数据表1和数据表3,不是数据表1和数据表2),操作节点4的操作类型向量(与第一样本特征的操作节点2的操作类型向量相同),操作节点5的操作类型向量(与第一样本特征的操作节点5的操作类型向量相同)。
第二样本特征还包括操作节点1的关系向量,操作节点2的关系向量,操作节点3的关系向量,操作节点4的关系向量,操作节点5的关系向量,这些关系向量与第一样本特征的5个关系向量类似,在此不再重复赘述。
综上所述,可以基于第二样本特征的表向量、列向量、各操作节点的操作类型向量、各操作节点的关系向量,生成第二样本执行计划,对此生成过程不做限制,是根据第一样本执行计划生成第一样本特征的逆过程。
参见图4所示,示出了第二样本执行计划的一个示例,从图4可以看出,第二样本执行计划中的连接顺序与第一样本执行计划中的连接顺序不同。
步骤s16、确定当前的初始网络模型(即Tree-LSTM网络)是否已收敛。
若未收敛,则说明Tree-LSTM网络还需要进行训练,即Tree-LSTM网络未训练完成,可以执行步骤s17。若已收敛,则说明Tree-LSTM网络不需要进行训练,即Tree-LSTM网络已训练完成,可以执行步骤s18。
步骤s17、基于第一样本执行计划的性能和第二样本执行计划的性能,对初始网络模型的网络参数进行调整,得到调整后的初始网络模型。基于调整后的初始网络模型,返回执行步骤s14,即将第一样本特征输入给调整后的初始网络模型,从而继续对初始网络模型进行训练,直到初始网络模型是否已收敛。
示例性的,在返回执行步骤s14时,可以将上述第一样本特征直接输入给调整后的初始网络模型,也可以将上述第二样本特征更新为第一样本特征,将更新后的第一样本特征输入给调整后的初始网络模型,从而继续进行优化。
示例性的,在返回执行步骤s14时,还可以获取新的样本多表连接查询请求,基于新的样本多表连接查询请求生成新的第一样本执行计划,将新的样本执行计划对应的第一样本特征输入给调整后的初始网络模型,从而继续进行优化。
示例性的,可以获取多个样本多表连接查询请求,针对每个样本多表连接查询请求,基于该样本多表连接查询请求对初始网络模型进行训练的过程,可以称为基于该样本多表连接查询请求的优化过程。在初始网络模型还未收敛时,先判断该样本多表连接查询请求的优化过程是否结束。如果未结束,则表示仍然需要基于该样本多表连接查询请求对初始网络模型进行优化,基于此,在返回执行步骤s14时,可以将上述第二样本特征更新为第一样本特征,将更新后的第一样本特征输入给调整后的初始网络模型,从而继续进行优化。如果已结束,则表示需要基于新样本多表连接查询请求对初始网络模型进行优化,基于此,在返回执行步骤s14时,可以获取新的样本多表连接查询请求,基于新的样本多表连接查询请求生成新的第一样本执行计划,将新的样本执行计划对应的第一样本特征输入给调整后的初始网络模型,从而继续进行优化。
步骤s18、将当前的初始网络模型确定为已训练的目标网络模型。
示例性的,为了对初始网络模型的网络参数进行调整,需要获取第一样本执行计划的性能(如执行时延,对此性能类型不做限制,后续以执行时延为例)和第二样本执行计划的性能,关于第一样本执行计划的执行时延,在从历史日志中选取样本多表连接查询请求时,也可以从历史日志中选取出该样本多表连接查询请求对应的执行时延,该执行时延也就是第一样本执行计划的执行时延。
关于第二样本执行计划的执行时延,可以估算第二样本执行计划的执行时延,即不需要真正执行第二样本执行计划,而是直接估算出执行时延,对此估算方式不做限制。或者,可以通过执行器真正执行第二样本执行计划,在真正执行第二样本执行计划的过程中,采集第二样本执行计划的执行时延。
比如说,Tree-LSTM网络可能选择错误的动作,如调整了已调整好的连接编号等,此时应该给予Tree-LSTM网络一个负值奖励,避免此类动作再产生。由于Tree-LSTM网络初期没有任何先验知识,很容易选择到错误的动作或者负优化的动作,若使用真实的执行时延,则需要执行大量样本执行计划,这些样本执行计划的执行过程需要花费很长时间,因此,可以设计一个预训练阶段。在预训练阶段中,每次确定第二样本执行计划的执行时延时,可以直接估算第二样本执行计划的执行时延,即不需要真正执行第二样本执行计划。
在预训练阶段结束后,Tree-LSTM网络具有基本的优化技能,但是由于预训练阶段的执行时延并不完全反映执行时延的真实大小,因此,可以进一步的采用真实的执行时延进行训练,将该训练过程称为真正训练阶段。在真正训练阶段中,每次确定第二样本执行计划的执行时延时,需要真正执行第二样本执行计划,并采集第二样本执行计划的执行时延,从而反映执行时延的真实大小。
示例性的,在基于第一样本执行计划的执行时延和第二样本执行计划的执行时延,对初始网络模型的网络参数进行调整的过程中,若第一样本执行计划的执行时延优于第二样本执行计划的执行时延,则说明调整后的第二样本执行计划的执行时延增加,即初始网络模型对样本特征的调整动作产生负优化,需要避免这类动作继续被选择,基于上述原理调整初始网络模型的网络参数,使得初始网络模型不再执行这类动作。若第二样本执行计划的执行时延优于第一样本执行计划的执行时延,则说明调整后的第二样本执行计划的执行时延降低,即初始网络模型对样本特征的调整动作产生有效优化,未来的决策应该充分考虑这类动作,基于上述原理调整初始网络模型的网络参数,使得初始网络模型继续执行这类动作。综上所述,可以基于第一样本执行计划的执行时延和第二样本执行计划的执行时延,分析初始网络模型的动作有效性,继而对初始网络模型的网络参数进行调整,使得初始网络模型保持或者放弃某种动作。
比如说,奖励回报的计算公式如下所示,可以基于第二样本执行计划的执行时延和第一样本执行计划的执行时延,确定奖励回报,评估模块基于奖励回报对初始网络模型的网络参数进行调整。显然,奖励回报越大,则表示初始网络模型的当前动作达到的效果越好,初始网络模型应该继续执行这类动作。奖励回报越小,则表示初始网络模型的当前动作达到的效果越差,初始网络模型应该放弃执行这类动作。评估模块可以基于上述原理对初始网络模型进行调整。
在上述公式中,Sinit和Sfinal表示第一样本执行计划和第二样本执行计划的执行时延。对执行时延取对数log和将执行时延的对数值的差值进行clip操作,目的是将数据缩放到更合适初始网络模型处理的范围。示例性的,每次动作完成之后会进行状态检查,判断是否仍需进行优化,如果单次动作执行之后状态表示优化未完成,则表示状态为中间状态,奖励为0;如果单次动作执行之后状态表示优化完成,则表示状态为为最终状态,确定最终的奖励回报。
示例性的,为了确定初始网络模型是否已收敛,可以预先配置初始网络模型的损失函数,参见如下公式所示,当该损失函数的损失值小于预设阈值时,则说明初始网络模型已收敛,否则,说明初始网络模型未收敛。当然,这个损失函数只是示例,还可以采用其它方式,对此不做限制。比如说,在开始对初始网络模型进行训练时,可以设置定时器,在定时器超时时,则结束训练过程,即直接确定初始网络模型已收敛,从而避免训练过程消耗太长时间。
Loss=(r+γmaxa′Qtarget(s′,a′)-Qonline(s,a))2
在上述公式中,γ可以为折扣因子,用于设计初始网络模型注重最近或者长远的奖励r,即r可以上述可以的奖励回报。s和a分别表示本次的状态和动作,s’和a’分别表示上次的状态和动作,因此,初始网络模型的的本质就是希望本次的Q估计值与上次的Q目标值和奖励之和无限接近。
综上所述,可以基于第一样本执行计划的性能和第二样本执行计划的性能对该初始网络模型进行训练,得到已训练的目标网络模型,目标网络模型的网络结构与初始网络模型的网络结构类似,在此不再重复赘述。
示例性的,当数据库中的数据发生较大变化时,例如,发生了较多的增/删/改操作,此时,已训练的目标网络模型可能存在一定的误差,因此,可以在已训练的目标网络模型的基础上,通过小次数的训练,快速得到最新数据库的优化模型,将最新数据库的优化模型作为训练的目标网络模型。
参见图6所示,为检测过程的示意图,该检测过程可以包括以下步骤:
步骤s21、查询优化器获取检测多表连接查询请求。
具体的,客户端可以向查询设备发送多表连接查询请求,查询优化器接收该多表连接查询请求,将该多表连接查询请求记为检测多表连接查询请求。
步骤s22、查询优化器将检测多表连接查询请求转换为第一检测执行计划,该第一样本执行计划可以包括多个操作节点,且采用树形结构进行排列。
示例性的,步骤s22与参见s12的实现过程类似,在此不再赘述。
步骤s23、查询优化器基于第一检测执行计划生成第一检测特征,该第一检测特征可以包括但不限于:信息特征(也可以称为向量列表特征),和/或,结构特征(也可以称为树字典特征)。示例性的,该信息特征用于表示单一操作节点的节点信息,该结构特征用于表示操作节点之间的关系信息。该信息特征可以包括但不限于以下向量的至少一种:表向量;列向量;每个操作节点的操作类型向量。该结构特征可以包括但不限于:每个操作节点的关系向量。
示例性的,步骤s23与参见s13的实现过程类似,在此不再赘述。
步骤s24、查询优化器将该第一检测特征输入给已训练的目标网络模型,由该目标网络模型根据该第一检测特征获得第二检测特征。
示例性的,在将第一检测执行计划对应的第一检测特征输入给目标网络模型后,目标网络模型可以根据第一检测特征对第一检测执行计划中的连接顺序进行调整,得到第二检测执行计划对应的第二检测特征,也就是说,该第二检测执行计划中的连接顺序与该第一检测执行计划中的连接顺序不同。
示例性的,步骤s24与参见s14的实现过程类似,在此不再赘述。
步骤s25、基于该第二检测特征生成第二检测执行计划;其中,该第二检测执行计划中的连接顺序与该第一检测执行计划中的连接顺序可以不同。
示例性的,第二检测执行计划就是需要执行的目标检测执行计划。
示例性的,步骤s25与参见s15的实现过程类似,在此不再赘述。
步骤s26、执行器基于该第二检测执行计划进行多表连接查询处理,也就是说,执行器通过执行该第二检测执行计划,从而实现多表连接查询处理功能。
基于上述技术方案,本申请实施例中,可以将第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据第一检测特征获得第二检测特征,并基于第二检测特征生成第二检测执行计划,从而得到性能较优的第二检测执行计划,并基于第二检测执行计划进行多表连接查询处理。上述方式能够通过目标网络模型获得性能较优的执行计划,从而寻找出较佳的执行计划,并对数据库的执行计划进行优化,提高数据库的多表连接查询效率,继而获得更好的执行性能,即更短的执行时延,以此提升查询的执行性能。目标网络模型根据以往的经验选择有效的优化动作,用于优化连接顺序,以提升查询的执行效率,优化后的执行计划能获得更好的执行性能,更短的执行时延。
基于与上述方法同样的申请构思,本申请实施例中还提供一种多表连接的处理装置,如图7A所示,为所述装置的结构图,所述装置包括:
生成模块711,用于根据样本多表连接查询请求生成第一样本执行计划;输入模块712,用于将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;所述生成模块711,还用于基于所述第二样本特征生成第二样本执行计划;所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;训练模块713,用于基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
所述生成模块711,还用于基于所述第一样本执行计划生成所述第一样本特征;其中,所述第一样本特征包括信息特征和/或结构特征;
所述第一样本执行计划包括多个操作节点,所述信息特征用于表示单一操作节点的节点信息,所述结构特征用于表示操作节点之间的关系信息。
所述训练模块713基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型时具体用于:确定当前的初始网络模型是否已收敛;
若否,则基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型的网络参数进行调整,得到调整后的初始网络模型;基于调整后的初始网络模型,返回执行将所述第一样本执行计划对应的第一样本特征输入给初始网络模型的操作;其中,所述第二样本执行计划的性能为估算的性能,或者,执行所述第二样本执行计划时采集的性能;
若是,则将当前的初始网络模型确定为已训练的目标网络模型。
基于与上述方法同样的申请构思,本申请实施例中还提供一种多表连接的处理装置,如图7B所示,为所述装置的结构图,所述装置包括:生成模块721,用于根据检测多表连接查询请求生成第一检测执行计划;输入模块722,用于将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据所述第一检测特征获得第二检测特征;所述生成模块721,还用于基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;处理模块723,用于基于所述第二检测执行计划进行多表连接查询处理。
所述生成模块721,还用于基于所述第一检测执行计划生成所述第一检测特征;其中,所述第一检测特征包括信息特征和/或结构特征;
所述第一检测执行计划包括多个操作节点,所述信息特征用于表示单一操作节点的节点信息,所述结构特征用于表示操作节点之间的关系信息。
本申请实施例还提供一种多表连接的处理设备,所述多表连接的处理设备包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
本申请实施例还提供另一种多表连接的处理设备,所述多表连接的处理设备包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
参见图8所示,为本申请实施例中提出的多表连接的处理设备的结构图,所述多表连接的处理设备以包括:处理器81,网络接口82,总线83,存储器84。存储器84可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据等等。例如,存储器84可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等)。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (17)
1.一种多表连接的处理方法,所述方法包括:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
2.根据权利要求1所述的方法,所述将所述第一样本执行计划对应的第一样本特征输入给初始网络模型之前,所述方法还包括:
基于所述第一样本执行计划生成所述第一样本特征;
其中,所述第一样本特征包括信息特征和/或结构特征;
所述第一样本执行计划包括多个操作节点,所述信息特征用于表示单一操作节点的节点信息,所述结构特征用于表示操作节点之间的关系信息。
3.根据权利要求2所述的方法,所述信息特征包括以下向量的至少一种:
表向量;所述第一样本执行计划包括数据表标识,所述表向量中与所述数据表标识对应的位置为第一取值;其中,所述表向量存在N个位置,N为数据库中数据表的总数量,所述表向量的N个位置与N个数据表一一对应;
列向量;所述第一样本执行计划包括列标识,所述列向量中与所述列标识对应的位置为第一取值;其中,所述列向量存在M个位置,M为数据库中各数据表的列的总数量,所述列向量的M个位置与M个列一一对应;
操作节点的操作类型向量;所述操作类型向量存在P个操作类型位置和Q个操作对象位置,P为操作类型总数量,P个操作类型位置与P个操作类型一一对应,Q为操作对象总数量,Q个操作对象位置与Q个操作对象一一对应;所述P个操作类型位置中与所述操作节点的操作类型对应的位置为第一取值,所述Q个操作对象位置中与所述操作节点的操作对象对应的位置为第一取值。
4.根据权利要求2所述的方法,所述第一样本执行计划中的各操作节点均具有唯一的节点标识,所述结构特征包括各操作节点的关系向量;
操作节点的关系向量包括所述操作节点的节点标识,所述操作节点的父节点的节点标识,所述操作节点的孩子节点的节点标识。
5.根据权利要求1所述的方法,
所述基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型,包括:
确定当前的初始网络模型是否已收敛;
若否,则基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型的网络参数进行调整,得到调整后的初始网络模型;基于调整后的初始网络模型,返回执行将所述第一样本执行计划对应的第一样本特征输入给初始网络模型的操作;其中,所述第二样本执行计划的性能为估算的性能,或者,执行所述第二样本执行计划时采集的性能;
若是,则将当前的初始网络模型确定为已训练的目标网络模型。
6.根据权利要求1所述的方法,
所述基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型之后,还包括:
获取检测多表连接查询请求,根据所述检测多表连接查询请求生成第一检测执行计划,并基于所述第一检测执行计划生成第一检测特征;
将所述第一检测特征输入给所述目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
7.根据权利要求6所述的方法,
所述第一检测特征包括信息特征和/或结构特征;
所述第一检测执行计划包括多个操作节点,所述信息特征用于表示单一操作节点的节点信息,所述结构特征用于表示操作节点之间的关系信息。
8.一种多表连接的处理方法,所述方法包括:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
9.根据权利要求8所述的方法,所述将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型之前,所述方法还包括:
基于所述第一检测执行计划生成所述第一检测特征;
其中,所述第一检测特征包括信息特征和/或结构特征;
所述第一检测执行计划包括多个操作节点,所述信息特征用于表示单一操作节点的节点信息,所述结构特征用于表示操作节点之间的关系信息。
10.根据权利要求9所述的方法,所述信息特征包括以下向量的至少一种:
表向量;所述第一检测执行计划包括数据表标识,所述表向量中与所述数据表标识对应的位置为第一取值;其中,所述表向量存在N个位置,N为数据库中数据表的总数量,所述表向量的N个位置与N个数据表一一对应;
列向量;所述第一检测执行计划包括列标识,所述列向量中与所述列标识对应的位置为第一取值;其中,所述列向量存在M个位置,M为数据库中各数据表的列的总数量,所述列向量的M个位置与M个列一一对应;
操作节点的操作类型向量;所述操作类型向量存在P个操作类型位置和Q个操作对象位置,P为操作类型总数量,P个操作类型位置与P个操作类型一一对应,Q为操作对象总数量,Q个操作对象位置与Q个操作对象一一对应;所述P个操作类型位置中与所述操作节点的操作类型对应的位置为第一取值,所述Q个操作对象位置中与所述操作节点的操作对象对应的位置为第一取值。
11.根据权利要求9所述的方法,所述第一检测执行计划中的各操作节点均具有唯一的节点标识,所述结构特征包括各操作节点的关系向量;
操作节点的关系向量包括所述操作节点的节点标识,所述操作节点的父节点的节点标识,所述操作节点的孩子节点的节点标识。
12.一种多表连接的处理装置,所述装置包括:
生成模块,用于根据样本多表连接查询请求生成第一样本执行计划;
输入模块,用于将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
所述生成模块,还用于基于所述第二样本特征生成第二样本执行计划;所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
训练模块,用于基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
13.一种多表连接的处理装置,所述装置包括:
生成模块,用于根据检测多表连接查询请求生成第一检测执行计划;
输入模块,用于将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由目标网络模型根据所述第一检测特征获得第二检测特征;
所述生成模块,还用于基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
处理模块,用于基于所述第二检测执行计划进行多表连接查询处理。
14.一种多表连接的处理设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
15.一种多表连接的处理设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
16.一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
根据样本多表连接查询请求生成第一样本执行计划;
将所述第一样本执行计划对应的第一样本特征输入给初始网络模型,由所述初始网络模型根据所述第一样本特征获得第二样本特征;
基于所述第二样本特征生成第二样本执行计划;其中,所述第二样本执行计划中的连接顺序与所述第一样本执行计划中的连接顺序不同;
基于所述第一样本执行计划的性能和所述第二样本执行计划的性能对所述初始网络模型进行训练,得到已训练的目标网络模型。
17.一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
根据检测多表连接查询请求生成第一检测执行计划;
将所述第一检测执行计划对应的第一检测特征输入给已训练的目标网络模型,由所述目标网络模型根据所述第一检测特征获得第二检测特征;
基于所述第二检测特征生成第二检测执行计划;其中,所述第二检测执行计划中的连接顺序与所述第一检测执行计划中的连接顺序不同或相同;
基于所述第二检测执行计划进行多表连接查询处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010762744.2A CN113297206A (zh) | 2020-07-31 | 2020-07-31 | 多表连接的处理方法、装置、设备及机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010762744.2A CN113297206A (zh) | 2020-07-31 | 2020-07-31 | 多表连接的处理方法、装置、设备及机器可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297206A true CN113297206A (zh) | 2021-08-24 |
Family
ID=77318179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010762744.2A Pending CN113297206A (zh) | 2020-07-31 | 2020-07-31 | 多表连接的处理方法、装置、设备及机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297206A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117609288A (zh) * | 2024-01-17 | 2024-02-27 | 矩阵起源(深圳)信息科技有限公司 | 数据查询策略优化方法、装置、终端设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250473A1 (en) * | 2006-04-21 | 2007-10-25 | Microsoft Corporation | Use of materialized transient views in query optimization |
US20130144867A1 (en) * | 2010-08-25 | 2013-06-06 | Hitachi, Ltd. | Database processing method, database processing system and database server |
CN110442516A (zh) * | 2019-07-12 | 2019-11-12 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 信息处理方法、设备及计算机可读存储介质 |
CN111435351A (zh) * | 2019-01-15 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 数据库查询优化方法、设备及存储介质 |
CN111444220A (zh) * | 2020-05-09 | 2020-07-24 | 南京大学 | 规则驱动和数据驱动相结合的跨平台sql查询优化方法 |
-
2020
- 2020-07-31 CN CN202010762744.2A patent/CN113297206A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250473A1 (en) * | 2006-04-21 | 2007-10-25 | Microsoft Corporation | Use of materialized transient views in query optimization |
US20130144867A1 (en) * | 2010-08-25 | 2013-06-06 | Hitachi, Ltd. | Database processing method, database processing system and database server |
CN111435351A (zh) * | 2019-01-15 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 数据库查询优化方法、设备及存储介质 |
CN110442516A (zh) * | 2019-07-12 | 2019-11-12 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 信息处理方法、设备及计算机可读存储介质 |
CN111444220A (zh) * | 2020-05-09 | 2020-07-24 | 南京大学 | 规则驱动和数据驱动相结合的跨平台sql查询优化方法 |
Non-Patent Citations (1)
Title |
---|
李桂杰;梅红;: "多关系SQL查询中连接顺序的优化", 杭州电子科技大学学报, no. 02, 25 April 2006 (2006-04-25), pages 34 - 37 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117609288A (zh) * | 2024-01-17 | 2024-02-27 | 矩阵起源(深圳)信息科技有限公司 | 数据查询策略优化方法、装置、终端设备以及存储介质 |
CN117609288B (zh) * | 2024-01-17 | 2024-04-30 | 矩阵起源(深圳)信息科技有限公司 | 数据查询策略优化方法、装置、终端设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416268B2 (en) | Aggregate features for machine learning | |
KR102302609B1 (ko) | 신경망 아키텍처 최적화 | |
US11669744B2 (en) | Regularized neural network architecture search | |
US11349680B2 (en) | Method and apparatus for pushing information based on artificial intelligence | |
US12008445B2 (en) | Black-box optimization using neural networks | |
CN111275172B (zh) | 一种基于搜索空间优化的前馈神经网络结构搜索方法 | |
WO2020238039A1 (zh) | 神经网络搜索方法及装置 | |
CN112434024A (zh) | 面向关系型数据库的数据字典生成方法、装置、设备及介质 | |
CN110647995A (zh) | 规则训练方法、装置、设备及存储介质 | |
CN114116778A (zh) | 一种数据库查询优化方法 | |
CN113836885A (zh) | 文本匹配模型训练方法、文本匹配方法、装置和电子设备 | |
CN115795131B (zh) | 基于人工智能的电子档案分类方法、装置及电子设备 | |
WO2022252694A1 (zh) | 神经网络优化方法及其装置 | |
CN110955712A (zh) | 基于多数据源的开发api处理方法及装置 | |
CN113297206A (zh) | 多表连接的处理方法、装置、设备及机器可读存储介质 | |
CN117334271B (zh) | 一种基于指定属性生成分子的方法 | |
CN117669726A (zh) | 自然语言问题处理方法、电子设备及计算机可读存储介质 | |
CN117009478A (zh) | 一种基于软件知识图谱问答问句解析过程的算法融合方法 | |
Luo et al. | Autosmart: An efficient and automatic machine learning framework for temporal relational data | |
CN110502660B (zh) | 一种弱监督下的多距离度量图像检索方法 | |
CN107944045A (zh) | 基于t分布哈希的图像检索方法及系统 | |
CN114168625A (zh) | 一种语法树的优化方法、装置 | |
CN111652384B (zh) | 一种数据量分布的平衡方法及数据处理方法 | |
CN113408735A (zh) | 用于模型优化的方法、装置以及存储介质 | |
CN116501764B (zh) | 一种基于生成式预训练模型的自动化sql优化方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059176 Country of ref document: HK |