CN118069648A - 执行计划的处理方法、装置、设备和介质 - Google Patents
执行计划的处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN118069648A CN118069648A CN202410205622.1A CN202410205622A CN118069648A CN 118069648 A CN118069648 A CN 118069648A CN 202410205622 A CN202410205622 A CN 202410205622A CN 118069648 A CN118069648 A CN 118069648A
- Authority
- CN
- China
- Prior art keywords
- baseline
- target
- query language
- structured query
- 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
- 238000000034 method Methods 0.000 title claims description 53
- 238000012545 processing Methods 0.000 title claims description 28
- 238000003672 processing method Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种执行计划的处理方法、装置、设备和介质,预先在系统表中存储结构化查询语言的执行计划基线,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态,当目标结构化查询语言执行结束后,获取目标结构化查询语言对应的目标基线,将系统表中的目标基线的状态信息标记为失效状态,并记录目标基线的第一结构化查询语言标识和/或第一计划哈希值,根据目标基线的第一计划哈希值在共享内存的哈希表中查找目标基线,修改共享内存中的目标基线的状态信息为失效状态,从而通过系统表和共享内存直观显示失效基线的状态,有效维护基线,保证在执行计划管理功能使用过程中,不会出现,执行计划管理选出的基线不能被执行器执行的情况。
Description
技术领域
本申请涉及数据库领域,尤其涉及一种执行计划的处理方法、装置、设备和介质。
背景技术
执行计划管理是通过预先设置SQL(Structured Query Language,结构化查询语言)的执行计划基线,来实现固定SQL执行计划的功能。数据库接收到待执行的SQL,通过优化器生成相应的执行计划,而后通过执行计划管理功能确定最终的执行计划,交给执行器执行。具体的,数据库接收到待执行的SQL后,判断是否存在该SQL的执行计划基线,若存在则使用执行计划基线,若不存在则使用优化器生成的执行计划。
在执行计划管理功能中,由DBA(Database Administrator,数据库管理员)预先选择一个SQL的执行计划当作基线,数据库在后续执行相同SQL时,都选择使用基线计划。
因此,选择使用基线计划时,成功执行的前提条件是,该基线计划是有效的,是能够被执行器执行的计划。
发明内容
本申请提供一种执行计划的处理方法、装置、设备和介质,用以保证在执行计划管理功能使用过程中,不会出现,执行计划管理选出的基线不能被执行器执行的情况。
第一方面,本申请提供一种执行计划的处理方法,包括:
预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储所述执行计划基线的状态信息为有效状态;
目标结构化查询语言执行结束后,获取所述目标结构化查询语言对应的目标基线;
将所述系统表中的所述目标基线的状态信息标记为失效状态,并记录所述目标基线的关键字,所述关键字包括第一结构化查询语言标识和/或第一计划哈希值;
根据所述目标基线的第一计划哈希值在所述共享内存的哈希表中查找所述目标基线,修改所述共享内存中的所述目标基线的状态信息为失效状态。
可选的,所述获取所述目标结构化查询语言对应的目标基线,包括:
收集执行所述目标结构化查询语言对数据库中的表产生影响的消息;
获取目标基线,所述目标基线包含所述消息中的特征。
可选的,所述根据所述目标基线的关键字在所述共享内存的哈希表中查找所述目标基线之前,所述方法还包括:
对所述共享内存的哈希表加锁。
可选的,所述修改所述共享内存中的所述目标基线的状态信息为失效状态之后,所述方法还包括:
在优化器生成与所述目标基线相同的计划时,将所述共享内存中的所述目标基线的状态信息修改为有效状态,以及将所述系统表中的所述目标基线的状态修改为有效状态。
可选的,所述将所述共享内存中的所述目标基线的状态信息修改为有效状态,以及将所述系统表中的所述目标基线的状态信息修改为有效状态,包括:
根据所述优化器生成的计划生成第二计划哈希值,以及根据所述优化器生成的计划对应的结构化查询语言文本生成第二结构化查询语言标识;
在所述系统表中查找第一结构化查询语言与所述第二结构化查询语言标识相同且第一计划哈希值与所述第二计划哈希值相同的基线;
若查找到,判断查找到的基线是否为失效基线;
若是,在所述共享内存的哈希表中查找所述失效基线,修改所述共享内存中的所述失效基线的状态信息为有效状态;
将所述系统表中的所述失效基线的状态信息修改为有效状态。
可选的,所述在所述共享内存的哈希表中查找所述失效基线之前,所述方法还包括:
对所述共享内存的哈希表加锁。
第二方面,本申请提供一种执行计划的处理装置,包括:
存储模块,用于预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储所述执行计划基线的状态信息为有效状态;
获取模块,用于目标结构化查询语言执行结束后,获取所述目标结构化查询语言对应的目标基线;
处理模块,用于将所述系统表中的所述目标基线的状态信息标记为失效状态,并记录所述目标基线的关键字,所述关键字包括第一结构化查询语言标识和/或第一计划哈希值;以及根据所述目标基线的第一计划哈希值在所述共享内存的哈希表中查找所述目标基线,修改所述共享内存中的所述目标基线的状态信息为失效状态。
可选的,所述装置还包括:
生成模块,用于在优化器生成与所述目标基线相同的计划时,根据所述优化器生成的计划生成第二计划哈希值,以及根据所述优化器生成的计划对应的结构化查询语言文本生成第二结构化查询语言标识;
查找模块,用于在所述系统表中查找第一结构化查询语言与所述第二结构化查询语言标识相同且第一计划哈希值与所述第二计划哈希值相同的基线;以及判断查找到的基线是否为失效基线;
所述处理模块还用于,在查找到的基线为失效基线时,在所述共享内存的哈希表中查找所述失效基线,修改所述共享内存中的所述失效基线的状态信息为有效状态;以及将所述系统表中的所述失效基线的状态信息修改为有效状态。
第三方面,本申请提供一种电子设备,包括:存储器和处理器;
存储器用于存储指令;处理器用于调用存储器中的指令执行第一方面及第一方面任一种可能的设计中的方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,当电子设备的至少一个处理器执行该计算机指令时,电子设备执行第一方面及第一方面任一种可能的设计中的方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机指令,当电子设备的至少一个处理器执行该计算机指令时,电子设备执行第一方面及第一方面任一种可能的设计中的方法。
本申请提供的执行计划的处理方法、装置、设备和介质,预先在系统表中存储结构化查询语言的执行计划基线,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态,当目标结构化查询语言执行结束后,获取目标结构化查询语言对应的目标基线,将系统表中的目标基线的状态信息标记为失效状态,并记录目标基线的第一结构化查询语言标识和/或第一计划哈希值,根据目标基线的第一计划哈希值在共享内存的哈希表中查找目标基线,修改共享内存中的目标基线的状态信息为失效状态,从而通过系统表和共享内存直观显示失效基线的状态,有效维护基线,保证在执行计划管理功能使用过程中,不会出现,执行计划管理选出的基线不能被执行器执行的情况。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的执行计划的处理方法的流程图;
图2为本申请另一实施例提供的执行计划的处理方法的流程图;
图3为本申请又一实施例提供的执行计划的处理方法的流程图;
图4为本申请一实施例提供的执行计划的处理装置的结构示意图;
图5为本申请另一实施例提供的执行计划的处理装置的结构示意图;
图6为本申请一实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请的方案,对本申请涉及的部分名词进行解释说明:
SQLID(结构化查询语言唯一标识):根据SQL文本生成的唯一标识符;
计划哈希:根据计划生成的唯一标识符,在生成计划哈希的过程中,需要跳过rows(行数)、cost(代价)等随表的数据量变化而变化的因素;
基线:执行计划管理对某一SQL固定的执行计划。
正如背景技术的描述,在执行计划管理功能中,选择使用基线计划的前提条件是,该基线计划是有效的,是能够被执行器执行的计划。
例如,基线计划失效的情况:
select*from table where a=1;,针对这条SQL预先设置了其IndexScan(索引扫描)的执行计划当作基线。在将基线中使用的索引进行删除之后,该基线应该归属于失效状态。因为基线的IndexScan中包含的索引已经被删除,该计划不能通过执行器执行出正确的结果。
针对上述问题,本申请提出了一种执行计划的处理方法,预先在系统表中存储结构化查询语言的执行计划基线,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态,当任意结构化查询语言执行结束后,查询失效的目标基线,将系统表中的目标基线标记为失效状态以及将共享内存中的目标基线的状态信息修改为失效状态,从而直观显示失效基线的状态,保证在执行计划管理功能使用过程中,不会出现,执行计划管理选出的基线不能被执行器执行的情况。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本申请中,以电子设备为执行主体,执行如下实施例的方法。具体地,该执行主体可以为电子设备的硬件装置,或者为电子设备中实现下述实施例的软件应用,或者为安装有实现下述实施例的软件应用的计算机可读存储介质,或者为实现下述实施例的软件应用的代码。
图1示出了本申请一实施例提供的一种执行计划的处理方法的流程图。
如图1所示,以电子设备为执行主体,本实施例的方法可以包括如下步骤:
S101、预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态。
本申请实施例中,数据库中的至少部分结构化查询语言具有对应的执行计划基线,将数据库中的至少部分结构化查询语言的执行计划基线的信息存储在系统表中,并在共享内存的哈希表中存储上述至少部分结构化查询语言的执行计划基线的状态信息。
其中,系统表存储的执行计划基线的信息包括执行计划基线的状态信息、执行计划基线的创建时间、执行计划基线的代价、执行计划基线的计划哈希中的至少一个。
因此,可以根据系统表中执行计划基线的状态信息以及共享内存中执行计划基线的状态信息确定执行计划基线的状态。具体的,系统表中执行计划基线的状态信息和共享内存中执行计划基线的状态信息一致时,可以确定执行计划基线的状态。
示例的,可以预先在共享内存中存储执行计划基线的状态信息为有效状态。也可以预先在系统表中存储执行计划基线的状态信息为有效状态。
S102、目标结构化查询语言执行结束后,获取目标结构化查询语言对应的目标基线。
本申请实施例中,目标结构化查询语言可以是数据库中的任意结构化查询语言。实际应用中,基线失效主要发生在执行结构化查询语言结束时,例如:结构化查询语言为drop index xx,在索引xx删除时,基线才会发生失效。
通常,增加操作不会导致基线失效,因此,目标结构查询语言可以包括删除操作对应的结构化查询语言,修改操作对应的结构化查询语言。
在目标结构化查询语言执行结束后,事务马上结束时,获取目标结构化查询语言对应的目标基线。由于基线是指某一结构化查询语言固定的执行计划,即基线和结构化查询语言是对应的,因此可以获取目标结构化查询语言对应的目标基线。
在一些实施例中,在目标结构化查询语言执行结束后,可以收集执行结构化查询语言对数据库中的表产生影响的消息,例如在T1表和T2表存在关系时,若T1表中的数据和/和索引被删除,需要告知T2表,T1表中的数据和/或索引被删除的消息。若未收集到对数据库中的表产生影响的消息,则结束。
收集到执行结构化查询语言对数据库中的表产生影响的消息之后,可以获取包含消息中的特征的目标基线,即判断消息会对哪些基线产生影响,例如消息为T1表中的数据和/或索引被删除,则可以获取包括T1表的数据和/或索引的基线。若未获取到目标基线,则结束。
S103、将系统表中的目标基线的状态信息标记为失效状态,并记录所述目标基线的关键字。
其中,目标基线的关键字包括目标基线的第一结构化查询语言标识和/或第一计划哈希值。示例的,目标基线的第一结构化查询语言标识可以是根据目标基线对应的目标结构化查询语言的文本生成的,目标基线的第一计划哈希值可以是根据目标基线生成的哈希值。
在获取目标结构化查询语言对应的目标基线之后,将系统表中的目标基线的状态信息标记为失效状态,同时记录失效基线(目标基线)的结构化查询语言标识(SQLID)和计划哈希值。
S104、根据目标基线的第一计划哈希值在共享内存的哈希表中查找目标基线,修改共享内存中的目标基线的状态信息为失效状态。
在系统表中的目标基线的状态为失效状态,同时共享内存中的目标基线的状态为失效状态时,可以确定目标基线处于失效状态,从而保证在执行计划管理功能使用过程中,不会出现,执行计划管理选出的基线不能被执行器执行的情况。
在一些实施例中,在根据目标基线的第一计划哈希值在共享内存的哈希表中查找目标基线之前,对共享内存的哈希表加锁,保证统一时刻只有一个会话修改一个基线的状态,防止多会话修改哈希表中同一条记录。
本申请提供的执行计划的处理方法,预先在系统表中存储结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态,当目标结构化查询语言执行结束后,获取目标结构化查询语言对应的目标基线,将系统表中的目标基线标记为失效状态以及将共享内存中的目标基线的状态信息修改为失效状态,从而直观显示失效基线的状态,保证在执行计划管理功能使用过程中,不会出现,执行计划管理选出的基线不能被执行器执行的情况。
图2示出了本申请另一实施例提供的一种执行计划的处理方法的流程图。如图2所示,以电子设备为执行主体,本实施例的方法可以包括如下步骤:
S201、预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态。
S202、目标结构化查询语言执行结束后,获取目标结构化查询语言对应的目标基线。
S203、将系统表中的目标基线的状态信息标记为失效状态,并记录所述目标基线的关键字。
S204、根据目标基线的第一计划哈希值在共享内存的哈希表中查找目标基线,修改共享内存中的目标基线的状态信息为失效状态。
其中,步骤S201与图1实施例中的步骤S101实现方式类似,步骤S202与图1实施例中的步骤S102实现方式类似,步骤S203与图1实施例中的步骤S103实现方式类似,步骤S204与图1实施例中的步骤S104实现方式类似,本实施例此处不再赘述。
S205、在优化器生成与目标基线相同的计划时,将共享内存中的目标基线的状态信息修改为有效状态,以及将系统表中的目标基线的状态信息修改为有效状态。
本实施例中,在优化器生成与目标基线相同的计划时,将目标基线在共享内存以及系统表中的状态恢复为有效状态,进一步维护基线状态。
在一些实施例中,根据优化器生成的计划生成第二计划哈希值,根据优化器生成的对应的结构化查询语言文本生成第二结构化查询语言标识,而后在系统表中查询第一结构化查询语言与第二结构化查询语言标识相同且第一计划哈希值与第二计划哈希值相同的基线,若查找到,判断查找到的基线是否为失效基线,若是,在共享内存的哈希表中查找该失效基线,修改共享内存中的该失效基线的状态信息为有效状态,并将系统表中的该失效基线的状态信息修改为有效状态。
在一些实施例中,在共享内存的哈希表中查找失效基线之前,对共享内存的哈希表加锁,保证统一时刻只有一个会话修改一个基线的状态,防止多会话修改哈希表中同一条记录。
本申请提供的执行计划的处理方法,预先在系统表中存储结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态,当目标结构化查询语言执行结束后,获取目标结构化查询语言对应的目标基线,将系统表中的目标基线标记为失效状态以及将共享内存中的目标基线的状态信息修改为失效状态,在优化器生成与目标基线相同的计划时,将共享内存中的目标基线的状态信息修改为有效状态,以及将系统表中的目标基线的状态信息修改为有效状态,从而有效维护基线。
图3示出了本申请又一实施例提供的一种执行计划的处理方法的流程图。如图3所示,以电子设备为执行主体,本实施例的方法可以包括如下步骤
S301、预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态。
S302、目标结构化查询语言执行结束后,收集执行结构化查询语言对数据库中的表产生影响的消息。
S303、获取目标基线,目标基线包含消息中的特征。
S304、将系统表中的目标基线的状态信息标记为失效状态,并记录目标基线的关键字,关键字包括第一结构化查询语言标识和/或第一计划哈希值。
S305、对共享内存的哈希表进行加锁,根据目标基线的第一计划哈希值在共享内存的哈希表中查找目标基线,修改共享内存中的目标基线的状态信息为失效状态。
S306、在优化器生成与目标基线相同的任务时,根据优化器生成的计划生成第二计划哈希值,以及根据优化器生成的计划对应的结构化查询语言文本生成第二结构化查询语言标识。
S307、在系统表中查询第一结构化查询语言与第二结构化查询语言标识相同且第一计划哈希值与第二计划哈希值相同的基线。
S308、判断查找到的基线是否为失效基线。
若是,执行步骤S309,若否,结束。
S309、对共享内存的哈希表加锁,在共享内存的哈希表中查找失效基线,修改共享内存的失效基线的状态信息为有效状态。
S310、将系统表中的失效基线的状态信息修改为有效状态。
本申请的执行计划的处理方法,有效维护基线,保证在执行计划管理功能的使用过程中,不会出现,执行计划管理选出的基线不能被执行器使用的情况。
图4示出了本申请一实施例提供的一种执行计划的处理装置的结构示意图,如图4所示,本实施例的执行计划的处理装置10用于实现上述任一方法实施例中对应于电子设备的操作,本实施例的执行计划的处理装置10包括:
存储模块11,用于预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储执行计划基线的状态信息为有效状态;
获取模块12,用于目标结构化查询语言执行结束后,获取目标结构化查询语言对应的目标基线;
处理模块13,用于将系统表中的目标基线的状态信息标记为失效状态,并记录目标基线的关键字,关键字包括第一结构化查询语言标识和/或第一计划哈希值;以及根据目标基线的第一计划哈希值在共享内存的哈希表中查找目标基线,修改共享内存中的目标基线的状态信息为失效状态。
可选的,如图5所示,装置还包括:
生成模块14,用于在优化器生成与所述目标基线相同的计划时,根据优化器生成的计划生成第二计划哈希值,以及根据优化器生成的计划对应的结构化查询语言文本生成第二结构化查询语言标识;
查找模块15,用于在系统表中查找第一结构化查询语言与第二结构化查询语言标识相同且第一计划哈希值与第二计划哈希值相同的基线;以及判断查找到的基线是否为失效基线;
处理模块13还用于,在查找到的基线为失效基线时,在共享内存的哈希表中查找失效基线,修改共享内存中的失效基线的状态信息为有效状态;以及将系统表中的失效基线的状态信息修改为有效状态。
本申请实施例提供的执行计划的处理装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图6示出了本申请实施例提供的一种电子设备的硬件结构示意图。如图6所示,该电子设备20,用于实现上述任一方法实施例中对应于电子设备的操作,本实施例的电子设备20可以包括:存储器21,处理器22和通信接口23。
存储器21,用于存储计算机指令。该存储器21可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储(Non-Volatile Memory,NVM),例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
处理器22,用于执行存储器存储的计算机指令,以实现上述实施例中的方法。具体可以参见前述方法实施例中的相关描述。该处理器22可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
可选地,存储器21既可以是独立的,也可以跟处理器22集成在一起。
通信接口23,可以与处理器22连接。处理器22可以控制通信接口23来实现信号的接收和发送的功能。
本实施例提供的电子设备可用于执行上述的方法,其实现方式和技术效果类似,本实施例此处不再赘述。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,计算机指令被处理器执行时用于实现上述的各种实施方式提供的方法。
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。设备的至少一个处理器可以从计算机可读存储介质中读取该计算机指令,至少一个处理器执行该计算机指令使得设备实施上述的各种实施方式提供的方法。
本申请实施例还提供一种芯片,该芯片包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用并运行所述计算机指令,使得安装有所述芯片的设备执行如上各种可能的实施方式中所述的方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种执行计划的处理方法,其特征在于,所述方法包括:
预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储所述执行计划基线的状态信息为有效状态;
目标结构化查询语言执行结束后,获取所述目标结构化查询语言对应的目标基线;
将所述系统表中的所述目标基线的状态信息标记为失效状态,并记录所述目标基线的关键字,所述关键字包括第一结构化查询语言标识和/或第一计划哈希值;
根据所述目标基线的第一计划哈希值在所述共享内存的哈希表中查找所述目标基线,修改所述共享内存中的所述目标基线的状态信息为失效状态。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标结构化查询语言对应的目标基线,包括:
收集执行所述目标结构化查询语言对数据库中的表产生影响的消息;
获取目标基线,所述目标基线包含所述消息中的特征。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标基线的关键字在所述共享内存的哈希表中查找所述目标基线之前,所述方法还包括:
对所述共享内存的哈希表加锁。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述修改所述共享内存中的所述目标基线的状态信息为失效状态之后,所述方法还包括:
在优化器生成与所述目标基线相同的计划时,将所述共享内存中的所述目标基线的状态信息修改为有效状态,以及将所述系统表中的所述目标基线的状态修改为有效状态。
5.根据权利要求4所述的方法,其特征在于,所述将所述共享内存中的所述目标基线的状态信息修改为有效状态,以及将所述系统表中的所述目标基线的状态信息修改为有效状态,包括:
根据所述优化器生成的计划生成第二计划哈希值,以及根据所述优化器生成的计划对应的结构化查询语言文本生成第二结构化查询语言标识;
在所述系统表中查找第一结构化查询语言与所述第二结构化查询语言标识相同且第一计划哈希值与所述第二计划哈希值相同的基线;
若查找到,判断查找到的基线是否为失效基线;
若是,在所述共享内存的哈希表中查找所述失效基线,修改所述共享内存中的所述失效基线的状态信息为有效状态;
将所述系统表中的所述失效基线的状态信息修改为有效状态。
6.根据权利要求5所述的方法,其特征在于,所述在所述共享内存的哈希表中查找所述失效基线之前,所述方法还包括:
对所述共享内存的哈希表加锁。
7.一种执行计划的处理装置,其特征在于,所述装置,包括:
存储模块,用于预先在系统表中存储至少部分结构化查询语言的执行计划基线的信息,以及在共享内存的哈希表中存储所述执行计划基线的状态信息为有效状态;
获取模块,用于目标结构化查询语言执行结束后,获取所述目标结构化查询语言对应的目标基线;
处理模块,用于将所述系统表中的所述目标基线的状态信息标记为失效状态,并记录所述目标基线的关键字,所述关键字包括第一结构化查询语言标识和/或第一计划哈希值;以及根据所述目标基线的第一计划哈希值在所述共享内存的哈希表中查找所述目标基线,修改所述共享内存中的所述目标基线的状态信息为失效状态。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
生成模块,用于在优化器生成与所述目标基线相同的计划时,根据所述优化器生成的计划生成第二计划哈希值,以及根据所述优化器生成的计划对应的结构化查询语言文本生成第二结构化查询语言标识;
查找模块,用于在所述系统表中查找第一结构化查询语言与所述第二结构化查询语言标识相同且第一计划哈希值与所述第二计划哈希值相同的基线;以及判断查找到的基线是否为失效基线;
所述处理模块还用于,在查找到的基线为失效基线时,在所述共享内存的哈希表中查找所述失效基线,修改所述共享内存中的所述失效基线的状态信息为有效状态;以及将所述系统表中的所述失效基线的状态信息修改为有效状态。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至6中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410205622.1A CN118069648A (zh) | 2024-02-23 | 2024-02-23 | 执行计划的处理方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410205622.1A CN118069648A (zh) | 2024-02-23 | 2024-02-23 | 执行计划的处理方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118069648A true CN118069648A (zh) | 2024-05-24 |
Family
ID=91103407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410205622.1A Pending CN118069648A (zh) | 2024-02-23 | 2024-02-23 | 执行计划的处理方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118069648A (zh) |
-
2024
- 2024-02-23 CN CN202410205622.1A patent/CN118069648A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247808B (zh) | 一种分布式NewSQL数据库系统及图片数据查询方法 | |
US6772155B1 (en) | Looking data in a database system | |
US8122008B2 (en) | Joining tables in multiple heterogeneous distributed databases | |
US8682859B2 (en) | Transferring records between tables using a change transaction log | |
US8161015B2 (en) | Method and system for deferred maintenance of database indexes | |
US20120203797A1 (en) | Enhanced control to users to populate a cache in a database system | |
CN109933609B (zh) | 一种批量生成id的方法及终端 | |
US20090164415A1 (en) | Method and system for managing database | |
CN105373541A (zh) | 数据库的数据操作请求的处理方法和系统 | |
CN109815240B (zh) | 用于管理索引的方法、装置、设备和存储介质 | |
CN111046041B (zh) | 数据处理方法和装置、存储介质及处理器 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
US20090106216A1 (en) | Push-model based index updating | |
CN113495872A (zh) | 分布式数据库中的事务处理方法及系统 | |
CN106354732A (zh) | 一种支持并发协同的离线数据版本冲突解决方法 | |
US20090106324A1 (en) | Push-model based index deletion | |
CN112395307A (zh) | 执行语句的方法、装置、服务器及存储介质 | |
CN114281819A (zh) | 数据查询方法、装置、设备及存储介质 | |
US7051051B1 (en) | Recovering from failed operations in a database system | |
CN108959548B (zh) | 业务请求的处理方法及装置 | |
US20040236744A1 (en) | Method for ensuring referential integrity in highly concurrent datbase environments | |
CN118069648A (zh) | 执行计划的处理方法、装置、设备和介质 | |
JP4314126B2 (ja) | 同時実行制御方法及び装置 | |
US8818990B2 (en) | Method, apparatus and computer program for retrieving data | |
CN110413617B (zh) | 一种根据数据量的大小动态调节哈希表组的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |