关联子查询语句执行方法、装置、电子设备及存储介质与流程

文档序号:37551964发布日期:2024-04-08 14:01阅读:11来源:国知局
关联子查询语句执行方法、装置、电子设备及存储介质与流程

本技术涉及数据库,尤其涉及一种关联子查询语句执行方法、装置、电子设备及存储介质。


背景技术:

1、在数据库应用中,关联子查询在多种系统和场景中被广泛使用,尤其关联in子查询在数据库查询中更是起着重要作用。其在被执行时,子查询是按照语义进行迭代式执行,即外层查询每查询到一条数据,子查询就会被触发一次执行,因此在整个查询完成时,关联子查询被执行了很多次。

2、然而,若外层查询的数据较多,且子查询不能被高效执行,那么整个查询的效率将会十分低下,影响用户体验。


技术实现思路

1、本技术提供了一种关联子查询语句执行方法、装置、电子设备及存储介质,以解决现有技术中在执行关联子查询语句时,若外层查询的数据较多,且子查询不能被高效执行,那么整个查询的效率将会十分低下,影响用户体验的技术问题。

2、第一方面,本技术提供了一种关联子查询语句执行方法,所述方法包括:

3、确定目标查询语句,并确定所述目标查询语句对应的子查询;

4、从所述子查询中确定关联子查询,所述关联子查询包括与所述目标查询语句中外部查询相关联的子查询;

5、获取所述关联子查询的关联条件对应的目标数据,并将所述目标数据存储至预设的临时表中;

6、基于所述临时表,将所述关联子查询进行解关联,并确定所述目标查询语句的目标执行计划树;

7、按照所述目标执行计划树执行所述目标查询语句。

8、作为一个可能的实现方式,所述确定所述目标查询语句对应的子查询,包括:

9、从所述目标查询语句中确定预设的子查询标识;

10、根据所述子查询标识,确定所述目标查询语句中的子查询语句;

11、将所述子查询语句对应的查询确定为子查询。

12、作为一个可能的实现方式,所述从所述子查询中确定关联子查询,包括:

13、确定所述子查询涉及的子查询连接表,以及所述目标查询语句对应外部查询的外部查询表;

14、确定所述子查询连接表中是否存在所述外部查询表;

15、在确定所述子查询连接表中存在所述外部查询表的情况下,将所述子查询连接表中所述外部查询表对应的子查询确定为关联子查询。

16、作为一个可能的实现方式,所述获取所述关联子查询的关联条件对应的目标数据,包括:

17、确定所述关联子查询对应的关联条件;

18、根据所述关联条件,确定所述外部查询表中与对应连接的所述子查询连接表存在关联关系的目标列;

19、将所述目标列对应的列数据确定为所述关联子查询的关联条件对应的目标数据。

20、作为一个可能的实现方式,所述基于所述临时表,将所述关联子查询进行解关联,并确定所述目标查询语句的目标执行计划树,包括:

21、构建所述目标查询语句对应的初始执行计划树,所述初始执行计划树包括关联子查询节点、子查询总节点,以及筛选节点,所述关联子查询节点连接所述目标查询语句的外部查询和所述子查询总节点,所述子查询总节点连接所述目标查询语句包括的全部子查询节点,所述子查询节点包括子查询中的非关联查询对应的子查询表、筛选节点,以及其他子查询节点中的任意两项,所述筛选节点对应所述关联子查询对应的子查询表;

22、解除所述关联子查询节点连接的外部查询和所述子查询总结点的连接关系,并添加连接节点,通过所述连接节点构建所述临时表与所述子查询总结点的连接关系;

23、将所述连接节点下移,并通过连接节点分别构建所述临时表与所述子查询总节点对应子查询表和筛选节点的连接关系,得到更新执行计划树;

24、从所述更新执行计划树包括的临时表中确定目标临时表,并将所述目标临时表替换为外部查询对应的外部查询表,得到所述目标查询语句对应的目标执行计划树。

25、作为一个可能的实现方式,所述所述子查询总结点为半连接,所述子查询总结点分别连接左连接节点和右连接节点,所述从所述更新执行计划树包括的临时表中确定目标临时表,包括:

26、将所述子查询总结点连接的左连接节点对应的临时表确定为所述目标临时表。

27、作为一个可能的实现方式,所述将所述目标临时表替换为外部查询对应的外部查询表,包括:

28、为所述外部查询对应的外部查询表中的数据设置唯一标识;

29、将设置所述唯一标识后的外部查询表替换所述更新执行计划树中的所述目标临时表。

30、第二方面,本技术实施例提供一种关联子查询语句执行装置,所述装置包括:

31、第一确定模块,用于确定目标查询语句,并确定所述目标查询语句对应的子查询;

32、第二确定模块,用于从所述子查询中确定关联子查询,所述关联子查询包括与所述目标查询语句中外部查询相关联的子查询;

33、获取模块,用于获取所述关联子查询的关联条件对应的目标数据,并将所述目标数据存储至预设的临时表中;

34、解关联模块,用于基于所述临时表,将所述关联子查询进行解关联,并确定所述目标查询语句的目标执行计划树;

35、执行模块,用于根据所述目标执行计划树执行所述目标查询语句。

36、作为一个可能的实现方式,所述第一确定模块,具体用于:

37、从所述目标查询语句中确定预设的子查询标识;

38、根据所述子查询标识,确定所述目标查询语句中的子查询语句;

39、将所述子查询语句对应的查询确定为子查询。

40、作为一个可能的实现方式,所述第二确定模块,具体用于:

41、确定所述子查询涉及的子查询连接表,以及所述目标查询语句对应外部查询的外部查询表;

42、确定所述子查询连接表中是否存在所述外部查询表;

43、在确定所述子查询连接表中存在所述外部查询表的情况下,将所述子查询连接表中所述外部查询表对应的子查询确定为关联子查询。

44、作为一个可能的实现方式,所述获取模块,具体用于:

45、确定所述关联子查询对应的关联条件;

46、根据所述关联条件,确定所述外部查询表中与对应连接的所述子查询连接表存在关联关系的目标列;

47、将所述目标列对应的列数据确定为所述关联子查询的关联条件对应的目标数据。

48、作为一个可能的实现方式,所述解关联模块。包括:

49、第一构建子模块,用于构建所述目标查询语句对应的初始执行计划树,所述初始执行计划树包括关联子查询节点、子查询总节点,以及筛选节点,所述关联子查询节点连接所述目标查询语句的外部查询和所述子查询总节点,所述子查询总节点连接所述目标查询语句包括的全部子查询节点,所述子查询节点包括子查询中的非关联查询对应的子查询表、筛选节点,以及其他子查询节点中的任意两项,所述筛选节点对应所述关联子查询对应的子查询表;

50、解除子模块,用于解除所述关联子查询节点连接的外部查询和所述子查询总结点的连接关系,并添加连接节点,通过所述连接节点构建所述临时表与所述子查询总结点的连接关系;

51、第二构建子模块,用于将所述连接节点下移,并通过连接节点分别构建所述临时表与所述子查询总节点对应子查询表和筛选节点的连接关系,得到更新执行计划树;

52、替换子模块,用于从所述更新执行计划树包括的临时表中确定目标临时表,并将所述目标临时表替换为外部查询对应的外部查询表,得到所述目标查询语句对应的目标执行计划树。

53、作为一个可能的实现方式,所述所述子查询总结点为半连接,所述子查询总结点分别连接左连接节点和右连接节点,所述替换子模块,具体用于:

54、将所述子查询总结点连接的左连接节点对应的临时表确定为所述目标临时表。

55、作为一个可能的实现方式,所述替换子模块,具体用于:

56、为所述外部查询对应的外部查询表中的数据设置唯一标识;

57、将设置所述唯一标识后的外部查询表替换所述更新执行计划树中的所述目标临时表。

58、第三方面,本技术实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的关联子查询语句执行程序,以实现第一方面中任一项所述的关联子查询语句执行方法。

59、第四方面,本技术实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面中任一项所述的关联子查询语句执行方法。

60、本技术实施例提供的技术方案,通过确定目标查询语句,并确定目标查询语句对应的子查询,从子查询中确定关联子查询,上述关联子查询包括与目标查询语句中外部查询相关联的子查询,获取关联子查询的关联条件对应的目标数据,并将目标数据存储至预设的临时表中,基于临时表,将关联子查询进行解关联,并确定目标查询语句的目标执行计划树,根据目标执行计划树执行目标查询语句。这一技术方案,通过对关联子查询语句中的关联子查询解关联,使得在执行关联子查询语句时,解除外部查询与子查询的关联关系,也即无论外部查询的数据有多少条,子查询只需要被执行一次,从而实现提高关联子查询语句的数据查询效率。

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