System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() SQL查询方法及装置、电子设备及存储介质制造方法及图纸_技高网

SQL查询方法及装置、电子设备及存储介质制造方法及图纸

技术编号:44113894 阅读:3 留言:0更新日期:2025-01-24 22:37
本说明书提供一种SQL查询方法及装置、电子设备及存储介质,该方法包括:若当前待处理的SQL语句适于分区执行,则确定所述SQL语句进行分区执行所针对的字段的分区特性;若所述SQL语句进行分区执行所针对的字段的分区特性为弱分区,则控制每个分区节点针对所述分区节点内符合分区规则的数据行执行所述SQL语句,并将分区执行结果和所述分区节点内不符合所述分区规则的数据行发送至协调节点,其中,所述弱分区用于表征字段内的部分数据行符合所述分区规则;控制所述协调节点针对接收到的不符合所述分区规则的数据行执行所述SQL语句,并基于本地得到的执行结果和接收到的分区执行结果生成查询结果。

【技术实现步骤摘要】

本说明书一个或多个实施例涉及数据库,尤其涉及一种sql查询方法及装置、电子设备及存储介质。


技术介绍

1、在数据库系统中,利用分区特性来加速查询是一种比较常用的方法,典型的场景有partition-wise-join、partition-wise-group by,partition-wise-distinct等,该方法可以利用分区特性避免数据重分区步骤,减少分布式数据库执行查询任务的网络传输代价,从而提升分布式数据库的查询性能。

2、相关技术中,利用分区特性的查询优化机制只能在较少的数据上应用,其适用范围过窄,导致数据库查询性能的提升很有限。


技术实现思路

1、有鉴于此,本说明书一个或多个实施例提供一种sql查询方法及装置、电子设备及存储介质。

2、为实现上述目的,本说明书一个或多个实施例提供技术方案如下:

3、根据本说明书一个或多个实施例的第一方面,提出了一种sql查询方法,所述方法包括:

4、若当前待处理的sql语句适于分区执行,则确定所述sql语句进行分区执行所针对的字段的分区特性;

5、若所述sql语句进行分区执行所针对的字段的分区特性为弱分区,则控制每个分区节点针对所述分区节点内符合分区规则的数据行执行所述sql语句,并将分区执行结果和所述分区节点内不符合所述分区规则的数据行发送至协调节点,其中,所述弱分区用于表征字段内的部分数据行符合所述分区规则;

6、控制所述协调节点针对接收到的不符合所述分区规则的数据行执行所述sql语句,并基于本地得到的执行结果和接收到的分区执行结果生成查询结果。

7、在本说明书一个可能的实施例中,所述方法还包括:

8、控制所述协调节点基于所述分区规则确定接收到的每个不符合所述分区规则的数据行对应的分区节点,并将每个不符合所述分区规则的数据行发送至对应的分区节点。

9、在本说明书一个可能的实施例中,在控制分区节点将不符合所述分区规则的数据行发送至所述协调节点之后,所述方法还包括:

10、控制所述分区节点删除不符合所述分区规则的数据行。

11、在本说明书一个可能的实施例中,所述弱分区用于表征字段内符合所述分区规则的数据行在所述字段的全部数据行内的比例不小于比例阈值。

12、在本说明书一个可能的实施例中,所述方法还包括:

13、若所述sql语句进行分区执行所针对的字段的分区特性为强分区,则控制每个分区节点针对所述分区节点内的数据行执行所述sql语句,并将分区执行结果发送至所述协调节点,其中,所述强分区用于表征字段内的全部数据行符合所述分区规则;

14、控制所述协调节点根据接收到的分区执行结果生成查询结果。

15、在本说明书一个可能的实施例中,所述方法还包括:

16、若所述sql语句进行分区执行所针对的字段的分区特性为空,则控制每个分区节点将所述分区节点内的数据行发送至所述协调节点,其中,所述空用于表征字段内符合所述分区规则的数据行在所述字段的全部数据行内的比例小于比例阈值;

17、控制所述协调节点针对接收到的数据行执行所述sql语句,以生成查询结果。

18、在本说明书一个可能的实施例中,所述方法还包括:

19、记录所述查询结果内每个字段的分区特性。

20、在本说明书一个可能的实施例中,所述方法还包括:

21、若sql语句内包含left join子句、group by子句、distinct子句、join子句和窗口函数子句中的至少一个,则确定所述sql语句适于分区执行。

22、根据本说明书一个或多个实施例的第二方面,提出了一种sql查询装置,所述装置包括:

23、特性确定模块,用于若当前待处理的sql语句适于分区执行,则确定所述sql语句进行分区执行所针对的字段的分区特性;

24、弱分区执行模块,用于若所述sql语句进行分区执行所针对的字段的分区特性为弱分区,则控制每个分区节点针对所述分区节点内符合分区规则的数据行执行所述sql语句,并将分区执行结果和所述分区节点内不符合所述分区规则的数据行发送至协调节点,其中,所述弱分区用于表征字段内的部分数据行符合所述分区规则;

25、结果融合模块,用于控制所述协调节点针对接收到的不符合所述分区规则的数据行执行所述sql语句,并基于本地得到的执行结果和接收到的分区执行结果生成查询结果。

26、在本说明书一个可能的实施例中,所述装置还包括重分区模块,用于:

27、控制所述协调节点基于所述分区规则确定接收到的每个不符合所述分区规则的数据行对应的分区节点,并将每个不符合所述分区规则的数据行发送至对应的分区节点。

28、在本说明书一个可能的实施例中,所述装置还包括删除模块,用于:

29、在控制分区节点将不符合所述分区规则的数据行发送至所述协调节点之后,控制所述分区节点删除不符合所述分区规则的数据行。

30、在本说明书一个可能的实施例中,所述弱分区用于表征字段内符合所述分区规则的数据行在所述字段的全部数据行内的比例不小于比例阈值。

31、在本说明书一个可能的实施例中,所述装置还包括强分区执行模块,用于:

32、若所述sql语句进行分区执行所针对的字段的分区特性为强分区,则控制每个分区节点针对所述分区节点内的数据行执行所述sql语句,并将分区执行结果发送至所述协调节点,其中,所述强分区用于表征字段内的全部数据行符合所述分区规则;

33、控制所述协调节点根据接收到的分区执行结果生成查询结果。

34、在本说明书一个可能的实施例中,所述装置还包括空分区执行模块,用于:

35、若所述sql语句进行分区执行所针对的字段的分区特性为空,则控制每个分区节点将所述分区节点内的数据行发送至所述协调节点,其中,所述空用于表征字段内符合所述分区规则的数据行在所述字段的全部数据行内的比例小于比例阈值;

36、控制所述协调节点针对接收到的数据行执行所述sql语句,以生成查询结果。

37、在本说明书一个可能的实施例中,所述装置还包括特性记录模块,用于:

38、记录所述查询结果内每个字段的分区特性。

39、在本说明书一个可能的实施例中,所述装置还包括判断模块,用于:

40、若sql语句内包含left join子句、group by子句、distinct子句、join子句和窗口函数子句中的至少一个,则确定所述sql语句适于分区执行。

41、根据本说明书一个或多个实施例的第三方面,提出了一种计算机程序产品,包括计算机程序/指令,该计算程序/指令被处理器执行时实现第一方面所述方法的步骤。

42、根据本说明书一个或多个实施例的第四方面,提出了一种电子设备,包括:

43、处理器;

<本文档来自技高网...

【技术保护点】

1.一种SQL查询方法,所述方法包括:

2.根据权利要求1所述的SQL查询方法,所述方法还包括:

3.根据权利要求2所述的SQL查询方法,在控制分区节点将不符合所述分区规则的数据行发送至所述协调节点之后,所述方法还包括:

4.根据权利要求1所述的SQL查询方法,所述弱分区用于表征字段内符合所述分区规则的数据行在所述字段的全部数据行内的比例不小于比例阈值。

5.根据权利要求1所述的SQL查询方法,所述方法还包括:

6.根据权利要求1所述的SQL查询方法,所述方法还包括:

7.根据权利要求1、5或6所述的SQL查询方法,所述方法还包括:

8.根据权利要求1所述的SQL查询方法,所述方法还包括:

9.一种SQL查询装置,所述装置包括:

10.根据权利要求9所述的SQL查询装置,所述装置还包括重分区模块,用于:

11.根据权利要求10所述的SQL查询装置,所述装置还包括删除模块,用于:

12.根据权利要求9所述的SQL查询装置,所述弱分区用于表征字段内符合所述分区规则的数据行在所述字段的全部数据行内的比例不小于比例阈值。

13.根据权利要求9所述的SQL查询装置,所述装置还包括特性记录模块,用于:

14.根据权利要求9所述的SQL查询装置,所述装置还包括判断模块,用于:

15.一种计算机程序产品,包括计算机程序/指令,该计算程序/指令被处理器执行时实现权利要求1至8中任一项所述方法的步骤。

16.一种电子设备,包括:

17.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种sql查询方法,所述方法包括:

2.根据权利要求1所述的sql查询方法,所述方法还包括:

3.根据权利要求2所述的sql查询方法,在控制分区节点将不符合所述分区规则的数据行发送至所述协调节点之后,所述方法还包括:

4.根据权利要求1所述的sql查询方法,所述弱分区用于表征字段内符合所述分区规则的数据行在所述字段的全部数据行内的比例不小于比例阈值。

5.根据权利要求1所述的sql查询方法,所述方法还包括:

6.根据权利要求1所述的sql查询方法,所述方法还包括:

7.根据权利要求1、5或6所述的sql查询方法,所述方法还包括:

8.根据权利要求1所述的sql查询方法,所述方法还包括:

9.一种sql查询装置,所述装置包括:

10.根据权利要求9所述...

【专利技术属性】
技术研发人员:王国平
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1