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

一种执行数据库语句的方法、装置、设备及存储介质制造方法及图纸

技术编号:40829210 阅读:13 留言:0更新日期:2024-04-01 14:51
本申请提供一种执行数据库语句的方法、装置、设备及存储介质,包括:确定数据库语句中具有连接操作关系的第一数据表和第二数据表;以基准数据表构建布隆过滤器;将参照数据表通过布隆过滤器进行过滤,得到更新数据表;基准数据表为第一数据表和第二数据表中的任一个;参照数据表为第一数据表和第二数据表中的另一个;更新数据表中的任一记录均满足布隆过滤器;通过更新数据表和/或基准数据表,确定符合第一数据表和第二数据表的连接操作方式,连接操作方式用于执行数据库语句;该方案,通过布隆过滤器,能够减少参照数据表的数据量,从而使得进行连接操作的两个数据表的数据量较少,提高数据表连接的效率以及增大了数据表连接优化的灵活性。

【技术实现步骤摘要】

本申请涉及数据库,尤其涉及一种执行数据库语句的方法、装置、设备及存储介质


技术介绍

1、随着大数据时代的发展,越来越多的数据存储在数据库中,当需要进行不同数据表之间的连接操作时,由于数据表中存储的数据过多,导致连接效率较低,甚至出现内存溢出等问题。

2、现有技术中,存在一种是基于规则的表连接优化方法,如常量折叠、谓词下推、列裁剪等,也即按照制定好的一系列优化规则对数据库语句表达式进行转换,最终生成一个最优的执行计划;但是基于规则的优化方法是一种经验式的优化方法,严格按照既定的规则顺序进行匹配,所以不同的数据库语句的写法直接决定执行效率不同,且基于规则的优化方法对数据不敏感,在数据表大小固定的情况下,无论中间结果数据怎么变化,只要数据库语句保持不变,生成的执行计划就是固定的,未考虑数据本身的特点,也未考虑算子本身的代价。


技术实现思路

1、本申请提供一种执行数据库语句的方法、装置、设备及存储介质,能够优化具有连接操作关系的数据表,确定最优连接操作方式,从而提高数据表的连接效率。

2、第一方面,本申请实施例提供一种执行数据库语句的方法,该方法可以由执行数据库语句的装置执行,该执行数据库语句的装置可以是一个终端设备或用于终端设备的模块,或者是一个服务器或用于服务器的模块。本申请对该方法的执行主体不做限定。该方法包括:确定数据库语句中具有连接操作关系的第一数据表和第二数据表;以基准数据表构建布隆过滤器;将参照数据表通过布隆过滤器进行过滤,得到更新数据表;基准数据表为第一数据表和第二数据表中的任一个;参照数据表为第一数据表和第二数据表中的另一个;更新数据表中的任一记录均满足布隆过滤器;通过更新数据表和/或基准数据表,确定符合第一数据表和第二数据表的连接操作方式,连接操作方式用于执行数据库语句。

3、上述方案,通过布隆过滤器,能够减少参照数据表的数据量,从而使得进行连接操作的两个数据表的数据量较少,因此能够提高数据表连接的效率。且,通过布隆过滤器优化具有连接操作关系的数据表,不受数据库语句的写法的限制,因为无论数据库语句的写法如何,只要提取了数据库语句中对应的数据表,就可以执行布隆过滤操作,增大了数据表连接优化的灵活性。

4、一种可能的实现方法中,将第一数据表和第二数据表中数据量低的数据表作为基准数据表,通过基准数据表构建布隆过滤器;通过更新数据表和基准数据表,确定符合第一数据表和第二数据表的连接操作方式;连接操作方式用于对更新数据表和基准数据表执行连接操作。

5、上述方案,将第一数据表和第二数据表中数据量低的数据表作为基准数据表,由于基准数据表的数据量较小,因此能够快速构建布隆过滤器;且使用数据量较大的数据表作为参照数据表,能够减少参照数据表的数据量,因为更新数据表中仅存有与基准数据表相对应的数据,所以更新数据表的数据量小于参照数据表,从而使得进行连接操作的两个数据表的数据量较少,提高数据表连接的效率。

6、一种可能的实现方法中,将第一数据表作为第一基准数据表,构建第一布隆过滤器;并将第二数据表作为第二基准数据表,构建第二布隆过滤器;将第二数据表通过第一布隆过滤器进行过滤,得到第一更新数据表;将第一数据表通过第二布隆过滤器进行过滤,得到第二更新数据表;通过第一更新数据表和第二更新数据表,确定符合第一数据表和第二数据表的连接操作方式;连接操作方式用于对第一更新数据表和第二更新数据表执行连接操作。

7、上述方案,分别构建两个布隆过滤器,通过两个布隆过滤器分别对第一数据表和第二数据表进行布隆过滤,能够减少第一数据表和第二数据表的数据量,从而使得进行连接操作的两个数据表的数据量较少,提高数据表连接的效率。

8、一种可能的实现方法中,在第一数据表和/或第二数据表具有过滤条件时,对第一数据表和/或第二数据表执行过滤操作,得到过滤操作后的第一数据表和/或第二数据表。

9、上述方案,先对具有过滤条件的第一数据表和/或第二数据表进行过滤,能够减少第一数据表和第二数据表的数据量,从而使得进行连接操作的两个数据表的数据量较少,提高数据表连接的效率。

10、一种可能的实现方法中,确定第一数据表和第二数据表不适用广播连接操作。

11、上述方案,若第一数据表和第二数据表适用广播连接操作,则对第一数据表和第二数据表进行广播连接操作;因为广播连接操作所消耗的资源和时间较少,因此能够提高数据表连接的效率。若第一数据表和第二数据表不适用广播连接操作,则对第一数据表和第二数据表进行布隆过滤,可以减少第一数据表和第二数据表的数据量,从而使得进行连接操作的两个数据表的数据量较少,提高数据表连接的效率。

12、一种可能的实现方法中,数据库语句涉及多个具有连接操作关系的数据表;针对具有连接操作关系的任意一对数据表,确定每对数据表进行连接操作的最小代价作为每对数据表的连接操作代价;将连接操作代价最小的一对数据表作为第一数据表和第二数据表。

13、上述方案,当数据库语句涉及多个具有连接操作关系的数据表,每次连接均计算连接操作代价,且选择连接操作代价最小的一对数据表作为第一数据表和第二数据表,因此完成整个数据库语句的过程中,可以动态的改变连接优化策略,减少连接操作的数据量、不必要的网络开销和分区阶段数据的移动。且,每次连接均选择连接操作代价最小的一对数据表,这样可以保证在完成整个数据库语句的过程中,连接代价最低,所耗资源和时间最低。

14、一种可能的实现方法中,根据多个具有连接操作关系的数据表,构建数据表连接关系图;将数据表连接关系图中表征第一数据表和第二数据表的节点,替换为通过连接操作方式得到的第三数据表表征的节点,从而更新数据表连接关系图;从数据表连接关系图中重新确定连接操作代价最小的一对数据表,直至数据库语句中具有连接操作关系的多个数据表的连接操作均执行完毕。

15、上述方案,构建数据表连接关系图,能够准确确定各个数据表的连接操作关系,且在完成整个数据库语句的过程中,不断更新数据表连接关系图,能够准确维持各个数据表的连接操作关系,进一步地准确确定各数据表之间的连接操作代价。

16、一种可能的实现方法中,根据更新数据表的数据量和/或基准数据表的数据量,确定符合第一数据表和第二数据表的连接操作方式;和/或,

17、根据基数估计,确定更新数据表和基准数据表的连接操作代价;根据更新数据表和基准数据表的连接操作代价,确定符合第一数据表和第二数据表的连接操作方式。

18、上述方案,根据更新数据表的数据量和/或基准数据表的数据量,能够准确快速确定符合第一数据表和第二数据表的连接操作方式;根据基数估计,能够估算更新数据表和基准数据表连接后形成的第三数据表的数据量,从而根据估算的第三数据表的数据量,为更新数据表和基准数据表的实际连接分配连接资源;且根据基数估计,能够重新评估连接操作方式,从而选择最优连接操作方式,这样可以保证在完成整个数据库语句的过程中,连接代价最低,本文档来自技高网...

【技术保护点】

1.一种执行数据库语句的方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述以基准数据表构建布隆过滤器,包括:

3.如权利要求1所述的方法,其特征在于,所述以基准数据表构建布隆过滤器,包括:

4.如权利要求1所述的方法,其特征在于,以基准数据表构建布隆过滤器之前,还包括:

5.如权利要求1所述的方法,其特征在于,以基准数据表构建布隆过滤器之前,还包括:

6.如权利要求1至5中任一项所述的方法,其特征在于,所述数据库语句涉及多个具有连接操作关系的数据表;

7.如权利要求6所述的方法,其特征在于,所述确定数据库语句中具有连接操作关系的第一数据表和第二数据表之前,还包括:

8.如权利要求1至5中任一项所述的方法,其特征在于,所述通过所述更新数据表和/或所述基准数据表,确定符合所述第一数据表和所述第二数据表的连接操作方式,包括:

9.如权利要求8所述的方法,其特征在于,所述根据基数估计,确定所述更新数据表和所述基准数据表的连接操作代价,包括:

10.如权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:

11.一种执行数据库语句的装置,其特征在于,包括确定单元、构建单元和过滤单元:

12.一种计算设备,其特征在于,包括:

13.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得如权利要求1至10中任一项所述的方法实现。

...

【技术特征摘要】

1.一种执行数据库语句的方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述以基准数据表构建布隆过滤器,包括:

3.如权利要求1所述的方法,其特征在于,所述以基准数据表构建布隆过滤器,包括:

4.如权利要求1所述的方法,其特征在于,以基准数据表构建布隆过滤器之前,还包括:

5.如权利要求1所述的方法,其特征在于,以基准数据表构建布隆过滤器之前,还包括:

6.如权利要求1至5中任一项所述的方法,其特征在于,所述数据库语句涉及多个具有连接操作关系的数据表;

7.如权利要求6所述的方法,其特征在于,所述确定数据库语句中具有连接操作关系的第一数据表和第二数据表之前,还包括:

...

【专利技术属性】
技术研发人员:刘有邓康华宋勇锋
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

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

1