一种缓存复用方法以及相关设备与流程

文档序号:36294018发布日期:2023-12-07 03:59阅读:24来源:国知局
一种缓存复用方法以及相关设备与流程

本技术实施例涉计算机领域,尤其涉及一种缓存复用方法以及相关设备。


背景技术:

1、数据库系统能够对现实世界对象进行建模并进行数据存储和查询处理,用户可以使用结构化查询一眼(structured query language,sql)作为标准的查询语言与数据库系统进行交互。其中sql语言的特点是声明式的,也就是说用户只需要告诉数据库系统需要什么数据,而不是如何执行获取数据。因此数据库系统需要对用户的sql查询语句进行查询编译、优化后转为系统内部可以执行的方式。但是sql语句的优化较为耗时,如何减少优化时间成为了亟需解决的问题。

2、在一种方法中,在数据库系统中提供了执行计划的缓存(cache)功能,缓存了sql语句的完整执行计划,并且基于文本相似性匹配算法对比缓存中的sql语句和本次输入的sql语句。当缓存的sql语句中存在与输入的sql语句完全相同的sql语句时,命中缓存的计划,完成sql语句的优化。

3、在这种方法中,对比的是sql语句,也就是说,采用的是文本相似度匹配算法,匹配效率不高。


技术实现思路

1、本技术提供了一种缓存复用方法以及相关设备,在缓存复用方法中,构建查询指令对应的第一属性图,将查询指令所包括的至少两个第一数据表和至少一个连接关系转换为第一属性图中的至少两个第一节点和至少一条第一边。然后基于节点相似性和/或边相似性,从缓存中确定的与第一属性图相似的第二属性图,并复用第二属性图的执行计划处理查询指令,从而获取查询结果。也就是说,在本技术中,将文本化的查询指令转换为抽象的属性图,并基于相似图的匹配算法来复用缓存中的执行计划,从而提升了匹配效率。

2、本技术第一方面提供了一种缓存复用的方法,该方法应用于计算机设备,包括:

3、计算机设备可以获取查询指令,查询指令包括至少两个第一数据表和至少一个连接关系。计算机设备获取查询指令的方式可以是获取用户输入的sql查询语句,sql语句中包括至少两个第一数据表和至少一个连接关系,以表示用户所需要的数据。基于查询指令,计算机设备可以构建第一属性图,第一属性图包括至少两个第一节点和至少一条第一边。其中,至少两个第一节点与至少两个第一数据表一一对应,至少一条第一边与至少一个连接关系一一对应。也就是说,第一数据表以及第一数据表之间的连接关系,在第一属性图中表示为第一节点以及第一节点之间的第一边。计算机设备还根据节点相似性和/或边相似性,从缓存中确定与第一属性图相似的第二属性图。在缓存中缓存有至少一个属性图,其中第二属性图是与第一属性图相似的属性图,且第二属性图包括与至少两个第一节点一一对应的至少两个第二节点,以及与至少一条第一边一一对应的至少一条第二边。计算机设备在确定第二属性图之后,可以复用第二属性图的执行计划对查询指令进行处理,从而获取查询指令的查询结果。

4、从以上技术方案可以看出,本技术具有以下优点:在本技术中,将文本化的查询指令转换为抽象的第一属性图,然后基于节点相似性和/或边相似性,将第一属性图与缓存中的属性图进行相似性匹配,从而确定与第一相似图匹配的第二相似图。再复用第二属性图的执行计划处理查询指令,以获取查询结果。相较于传统的文本相似度匹配算法,提升了匹配效率。

5、在第一方面的一种可能的实现方式中,计算机设备根据节点相似性和/或边相似性,从缓存中确定与第一属性图相似的第二属性图,包括:根据节点相似性,从缓存中确定第二属性图。具体来说,计算机设备可以按照从首节点至尾节点的顺序,依次将至少两个第一节点与缓存中的候选属性图集中的节点进行相似性匹配。其中,候选属性图集包括至少一个属性图。也就是说,计算机设备会将第一属性图中的至少两个第一节点,从首节点开始逐个节点与候选属性图集中每个属性图的节点对比。换言之,在进行节点相似性匹配时,计算机设备是将第一属性图的首节点与每个属性图的首节点对比,首节点的下一节点与每个属性图的首节点的下一节点对比,以此类推。在进行对比的过程中,如果候选属性图集的第三属性图中存在不满足节点相似性条件的节点,那么计算机设备可以停止与第三属性图的相似性匹配,也即确定此第三属性图并不是与第一属性图匹配的属性图。如果候选属性图中的第四属性图中的至少两个第三节点与至少两个第一节点一一相似(也即第四属性图中的节点与第一属性图中的节点满足节点相似性条件),那么计算机设备可以根据第四属性图确定第二属性图。需要注意的是,这里并不限定第四属性图的数量,第四属性图指的是在候选属性图集中至少两个第三节点与至少两个第一节点一一相似的属性图。

6、本技术中,在对第一属性图的至少两个第一节点与候选属性图集中的节点进行相似性匹配时,是按照从首节点至尾节点的顺序依次对比的,如果出现不满足节点相似性条件的节点,计算机设备会停止与该属性图的对比,也即不再对后续的节点进行相似性匹配,从而缩小了执行计划的对比范围,减少了对比时间,也即减少了sql语句的优化时间。

7、在第一方面的一种可能的实现方式中,根据第四属性图确定第二属性图包括:计算机设备确定第四属性图中执行代价最小或者节点相似度最高的属性图为第二属性图。可选的,这里所说的节点相似度可以是至少两个第一节点与至少两个第三节点各自的相似度的均值,或者加权值,具体此处不做限定。各个节点的权重可以根据实际应用确定,具体此处不做限定。

8、本技术中,在与第一属性图中的节点满足节点相似性条件的第四属性图的数量为多个时,计算机设备可以进行筛选,从中选择执行代价最小的属性图作为第二属性图,使得计算机设备所复用的执行计划的执行代价最小,降低了处理查询指令的执行代价。或者,计算机设备可以从中筛选节点相似度最高的属性图作为第二属性图,从而确保了第一属性图和第二属性图的相似度,提升了匹配的执行计划的准确度。

9、在第一方面的一种可能的实现方式中,执行代价是根据第四属性图的规模确定的。节点相似度是根据第一属性图的规模与第四属性图的规模,和/或,第一属性图的索引定义与第四属性图的索引定义确定的。

10、本技术中,确定节点相似度的方式有多种可能,丰富了本技术技术方案的实现方式,提升了本技术技术方案的灵活性。

11、在第一方面的一种可能的实现方式中,计算机设备根据节点相似性和/或边相似性,从缓存中确定与第一属性图相似的第二属性图,包括:根据边相似性,确定第二属性图。具体来说,计算机设备可以按照从首边至尾边的顺序,依次将至少一条第一边与缓存中的候选属性图集中的边进行相似性匹配,候选属性图集包括至少一个属性图。也就是说,计算机设备会将第一属性图中的至少一条第一边,从首边开始逐条与候选属性图集中每个属性图的边对比。换言之,在进行边相似性匹配时,计算机设备是将第一属性图的首边与每个属性图的首边对比,首边的下一条边与每个属性图的首边的下一条边对比,以此类推。其中,首边是指首节点的下一个节点之间的边,对应到查询指令中是第一个第一数据表和第二个第一数据表之间的连接关系。其余边与首边类似,对应相应的连接关系。在进行边相似性对比的过程中,如果候选属性图集的第五属性图中存在不满足边相似性条件的边,则停止与第五属性图的相似性匹配,也即确定此第五属性图并不是与第一属性图匹配的属性图。如果候选属性图集中第六属性图中的至少一条第三边与至少一条第一边一一相似(也即第六属性图中的边与第一属性图中的边满足边相似性条件),那么计算机设备可以根据第六属性图确定第二属性图。需要注意的是,这里并不限定第六属性图的数量,第六属性图指的是在候选属性图集中至少两个第三边与至少两个第一边一一相似的属性图。

12、本技术中,在对第一属性图的至少两个第一边与候选属性图集中的边进行相似性匹配时,是按照从首边至尾边的顺序依次对比的,如果出现不满足边相似性条件的边,计算机设备会停止与该属性图的对比,也即不再对后续的边进行相似性匹配,从而缩小了执行计划的对比范围,减少了对比时间,也即减少了sql语句的优化时间。

13、在第一方面的一种可能的实现方式中,根据第六属性图确定第二属性图包括:计算机设备可以确定第六属性图中执行代价最小或者边相似度最高的属性图为第二属性图。可选的,这里所说的边相似度可以是至少一条第一边与至少一条第三边各自的相似度的均值,或者加权值,具体此处不做限定。各个边的权重可以根据实际应用确定,具体此处不做限定。

14、本技术中,在与第一属性图中的边满足边相似性条件的第六属性图的数量为多个时,计算机设备可以进行筛选,从中选择执行代价最小的属性图作为第二属性图,使得计算机设备所复用的执行计划的执行代价最小,降低了处理查询指令的执行代价。或者,计算机设备可以从中筛选边相似度最高的属性图作为第二属性图,从而确保了第一属性图和第二属性图的相似度,提升了匹配的执行计划的准确度。

15、在第一方面的一种可能的实现方式中,边相似度是根据第一属性图对应的第一边指示的连接条件的命中率与所述第六属性图对应的第三边指示的连接条件的命中率,和/或,所述第一属性图对应的第一边指示的连接关系类型与所述第三属性图对应的第三边指示的连接关系类型确定的。

16、本技术中,确定边相似度的方式有多种可能,丰富了本技术技术方案的实现方式,提升了本技术技术方案的灵活性。

17、在第一方面的一种可能的实现方式中,计算机设备根据节点相似性和/或边相似性,从缓存中确定与第一属性图相似的第二属性图,包括:根据节点相似性和边相似性,确定第二属性图。具体来说,计算机设备可以按照“节点-边-节点”的顺序,从首节点开始与缓存中的属性图集中的至少一个属性图进行节点和边的相似性匹配。节点的相似性匹配和边的相似性匹配与前文的实现方式类似,此处不再赘述。需要注意的是,在本实现方式中,相似性对比是节点对比和边对比穿插进行,在对比过程中当候选属性图集中出现不满足节点相似性条件或者边相似性条件的属性图时,计算机设备即停止与该属性图的对比。也就是说,计算机设备筛选出的与第一属性图相似的属性图,不仅与第一属性图的节点相似,也与第一属性图的边相似。如果计算机设备筛选出多个与第一属性图相似的属性图,计算机设备可以从中确定执行代价最小或者综合相似度最高的属性图为第二属性图。其中,综合相似度包括节点相似度和边相似度,可以是两者的加权值或者均值等,具体此处不做限定。

18、本技术中,在确定与第一属性图相似的第二属性图时,不但可以仅根据节点相似性或者边相似性确定,还可以结合节点相似性和边相似性确定,丰富了本技术技术方案的实现方式。在后者的技术方案中,筛选条件更加严格,使得确定的第二属性图更能满足要求,进一步提升了本技术技术方案的准确性。

19、在第一方面的一种可能的实现方式中,第二属性图的执行计划,包括:缓存的第二属性图对应的连接关系级别的执行计划。

20、本技术中,缓存的是连接关系级别的执行计划,相较于传统方案中缓存完整的执行计划,减少了缓存开销,提升了缓存命中率。

21、本技术第二方面提供了一种计算机设备,包括获取单元和处理单元。

22、获取单元,用于获取查询指令,查询指令包括至少两个第一数据表和至少一个连接关系。

23、处理单元,用于:构建第一属性图,第一属性图包括与至少两个第一数据表一一对应的至少两个第一节点,和与至少一个连接关系一一对应的至少一条第一边。根据节点相似性和/或边相似性,从缓存中确定与第一属性图相似的第二属性图,第二属性图包括与至少两个第一节点一一对应的至少两个第二节点,以及与至少一条第一边一一对应的至少一条第二边。复用第二属性图的执行计划处理查询指令,以获取查询指令的查询结果。

24、计算机设备用于执行前述第一方面或者第一方面任一种可能的实现方式所示的方法,其有益效果与前述第一方面或者第一方面任一种可能的实现方式类似,此处不再赘述。

25、本技术第三方面提供了一种计算机设备,包括处理器和存储器,处理器存储指令,当存储在存储器上的指令在处理器上运行时,实现前述第一方面或者第一方面的任一种可能的实现方式所示的方法。

26、本技术第四方面提供了一种计算机可读存储介质,计算机可读存储介质中保存有指令,当指令在处理器上运行时,实现前述第一方面或者第一方面的任一种可能的实现方式所示的方法。

27、本技术第五方面提供了一种计算机程序产品,当计算机程序产品在处理器上执行时,实现前述第一方面或者第一方面的任一种可能的实现方式所示的方法。

28、第三方面至第五方面中任一方面所示的有益效果与第一方面或者第一方面任一种可能的实现方式类似,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1