System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种自适应的查询方法、相关设备以及存储介质技术_技高网

一种自适应的查询方法、相关设备以及存储介质技术

技术编号:40822853 阅读:2 留言:0更新日期:2024-04-01 14:42
本申请实施例公开了一种自适应的查询方法、相关设备以及存储介质,用于降低查询代价,而且减少查询处理的时间。本申请实施例方法包括:根据查询语句生成第一查询计划;执行所述第一查询计划,并生成运行信息,所述运行信息为执行所述第一查询计划的过程中所生成的信息;若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法;根据所述第一抽样算法生成第二查询计划;执行所述第二查询计划以获取查询结果。

【技术实现步骤摘要】

本申请涉及数据查询领域,尤其涉及一种自适应的查询方法、相关设备以及存储介质


技术介绍

1、数据库能够根据查询语句生成可执行的查询计划,根据查询计划对数据库进行查询以得到相应的查询结果。对于同一查询语句执行不同的查询计划会有不同的查询代价。查询优化的目的就是构造具有最小查询代价的查询计划。

2、可通过动态抽样(dynamic sampling)的方式生成查询代价小的查询计划。已有的动态抽样的过程中,需要首先根据查询语句生成第一查询计划。在确定需要执行动态抽样的情况下,再执行动态抽样的过程,进而根据动态抽样的结果生成一个新的第二查询计划。在动态采样的过程中,根据查询情况的不同,对不同数量的数据库块(block)进行动态采样。其中,block是数据库中的最小存储和处理单位。

3、已有的在一定数量的block上执行动态采样,反映的是一个block的数据分布。但是,不同的block的数据分布有可能是不同的,因此,基于动态采样后所生成的第二查询计划对每个block,未必是查询代价最小的。可见,已有的抽样方法无法保证动态抽样后所获得的查询计划的查询代价下降,也无法保证总体查询处理时间减少。


技术实现思路

1、本申请实施例提供了自适应的查询方法、相关设备以及存储介质,其能够减少不必要的由动态抽样带来的资源占用、性能下降问题,提升整体查询效率。

2、本申请实施例第一方面提供了一种自适应的查询方法,所述方法包括:根据查询语句生成第一查询计划;执行所述第一查询计划,并生成运行信息,所述运行信息为执行所述第一查询计划的过程中所生成的信息;若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法;根据所述第一抽样算法生成第二查询计划;执行所述第二查询计划以获取查询结果。

3、采用本方面所示的查询方法,若确定需要执行动态抽样,则通过执行动态抽样,相对于第一查询计划,能够获取到查询代价更小,查询准确率更高的第二查询计划。第二查询计划能够降低查询代价,而且减少查询处理的时间。而且基于执行所述第一查询计划的过程中所生成的运行信息确定是否执行动态抽样,能够减少不必要的由动态抽样带来的资源占用、性能下降问题,有助于提升整体查询效率。

4、基于第一方面,一种可选的实现方式中,所述执行所述第一查询计划,并生成运行信息包括:在数据流所包括的数据片上执行所述第一查询计划,并生成所述运行信息。

5、采用本实现方式,查询可基于数据片执行,从而使得查询结果反映的是数据片上的选择度,以应对大数量下分布不均匀,数据流式到来的场景。而且能够根据不同的数据片生成不同的查询计划,提高了数据流上的查询性能。而且对数据流的查询,能够保证始终能够以最优的查询计划对数据片进行查询。

6、基于第一方面,一种可选的实现方式中,所述数据流包括按照时间先后依次排列的多个数据片,所述多个数据片包括第一数据片,所述运行信息包括第一执行时间段,所述第一执行时间段为所述第一查询计划在所述第一数据片上执行查询处理的时间段。

7、采用本实现方式,能够基于第一查询计划在第一数据片上执行查询处理的时间段确定是否执行动态抽样,以减少不必要的动态抽样。

8、基于第一方面,一种可选的实现方式中,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:若确定所述第一执行时间段大于执行平均值,则确定需要动态抽样,所述执行平均值为多个第二执行时间段的平均值,每个所述第二执行时间段为查询计划在第二数据片上执行查询处理的时间段,每个所述第二数据片在所述数据流中排列于所述第一数据片之前。

9、采用本实现方式,在确定所述第一执行时间段大于执行平均值,则确定需要动态抽样,有效的减少了不必要的动态抽样。

10、基于第一方面,一种可选的实现方式中,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:若确定所述第一时间段与第二时间段差不小于第一预设阈值,则确定需要动态抽样,所述第二时间段为查询计划在第二数据片执行查询处理的时间段,所述第二数据片在所述数据流中排列于所述第一数据片之前。

11、采用本实现方式,在确定所述第一时间段与第二时间段差不小于第一预设阈值的情况下,则确定需要动态抽样,有效的减少了不必要的动态抽样。

12、基于第一方面,一种可选的实现方式中,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:若确定第一基数与第二基数的差的绝对值不小于第二预设阈值,则确定需要动态抽样,所述第一基数为所述第一查询计划对所述查询语句执行查询处理所获取的结果个数估计值,所述第二基数为探测到所述查询语句的真实结果个数。

13、采用本实现方式,在确定第一基数与第二基数的差的绝对值不小于第二预设阈值的情况下,则确定需要动态抽样,有效的减少了不必要的动态抽样。

14、基于第一方面,一种可选的实现方式中,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:若确定硬件事件的次数不小于第三预设阈值,则确定需要动态抽样,所述硬件事件为缓存未命中次数(cache misses)和/或分支预测失败次数(branch misses)。

15、采用本实现方式,在确定硬件事件的次数不小于第三预设阈值,则确定需要动态抽样,有效的减少了不必要的动态抽样。

16、基于第一方面,一种可选的实现方式中,所述根据查询语句生成第一查询计划之后,所述方法还包括:根据所述第一查询计划获取第二抽样算法;根据所述第二抽样算法生成更新后的第一查询计划;所述执行所述第一查询计划,并生成运行信息包括:执行所述更新后的第一查询计划,并生成所述运行信息。

17、采用本实现方式,根据第二抽样算法生成第二抽样计划,基于第二抽样计划从存储层拉取统计信息进行抽样,计算谓词选择度。根据已有的统计信息和抽样得来的谓词选择度生成更新后的第一查询计划。抽样得来的谓词选择度弥补了已有统计信息的缺失、过时、不准确的问题,使用更准确统计信息生成的更新后的第一查询计划在绝大多数情况下都比原有的第一查询计划查询代价更小。

18、基于第一方面,一种可选的实现方式中,所述根据所述第一查询计划获取第二抽样算法包括:获取与所述查询语句关联的查询路径,所述查询路径包括至少一个二维行列表格;根据所述至少一个二维行列表格的连接操作获取所述第二抽样算法。

19、采用本实现方式,根据所述至少一个二维行列表格的连接操作获取所述第二抽样算法,有效的降低了基于第二抽样算法所生成的更新后的第一查询计划的代价。

20、基于第一方面,一种可选的实现方式中,所述根据所述第一查询计划获取第二抽样算法包括:获取与所述查询语句关联的查询路径,所述查询路径包括至少一个二维行列表格;根据所述二维行列表格的索引列获取所述第二抽样算法。

21、采用本实现方式,根本文档来自技高网...

【技术保护点】

1.一种自适应的查询方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述执行所述第一查询计划,并生成运行信息包括:

3.根据权利要求2所述的方法,其特征在于,所述数据流包括按照时间先后依次排列的多个数据片,所述多个数据片包括第一数据片,所述运行信息包括第一执行时间段,所述第一执行时间段为所述第一查询计划在所述第一数据片上执行查询处理的时间段。

4.根据权利要求3所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

5.根据权利要求3所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

6.根据权利要求1至5任一项所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

7.根据权利要求1至6任一项所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

8.根据权利要求1至7任一项所述的方法,其特征在于,所述根据查询语句生成第一查询计划之后,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

10.根据权利要求8或9所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

11.根据权利要求8至10任一项所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

12.根据权利要求8至11任一项所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

13.根据权利要求8至12任一项所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法之前,所述方法还包括:

14.一种自适应查询引擎,其特征在于,包括:

15.根据权利要求14所述的自适应查询引擎,其特征在于,所述第一生成模块根据查询语句生成第一查询计划的过程中,具体用于:

16.根据权利要求15所述的自适应查询引擎,其特征在于,所述数据流包括按照时间先后依次排列的多个数据片,所述多个数据片包括第一数据片,所述运行信息包括第一执行时间段,所述第一执行时间段为所述第一查询计划在所述第一数据片上执行查询处理的时间段。

17.根据权利要求16所述的自适应查询引擎,其特征在于,所述获取模块获取与所述运行信息对应的第一抽样算法的过程中,具体用于:

18.根据权利要求16所述的自适应查询引擎,其特征在于,所述获取模块获取与所述运行信息对应的第一抽样算法的过程中,具体用于:

19.根据权利要求14至18任一项所述的自适应查询引擎,其特征在于,所述获取模块获取与所述运行信息对应的第一抽样算法的过程中,具体用于:

20.根据权利要求14至19任一项所述的自适应查询引擎,其特征在于,所述第二执行模块还用于:

21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上执行时,使得计算机执行如权利要求1-13中任一项所述的方法。

22.一种芯片,其特征在于,包括通信接口、存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于读取并执行所述存储器中存储器的所述计算机程序,以执行如权利要求1-13中任一项所述的方法。

23.一种计算设备,其特征在于,包括收发器和处理器,所述收发器用于执行信息的收发,所述处理器用于读取并执行存储器中存储器的计算机程序,以执行如权利要求1-13中任一项所述的方法。

...

【技术特征摘要】

1.一种自适应的查询方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述执行所述第一查询计划,并生成运行信息包括:

3.根据权利要求2所述的方法,其特征在于,所述数据流包括按照时间先后依次排列的多个数据片,所述多个数据片包括第一数据片,所述运行信息包括第一执行时间段,所述第一执行时间段为所述第一查询计划在所述第一数据片上执行查询处理的时间段。

4.根据权利要求3所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

5.根据权利要求3所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

6.根据权利要求1至5任一项所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

7.根据权利要求1至6任一项所述的方法,其特征在于,所述若根据所述运行信息确定需要动态抽样,则获取与所述运行信息对应的第一抽样算法包括:

8.根据权利要求1至7任一项所述的方法,其特征在于,所述根据查询语句生成第一查询计划之后,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

10.根据权利要求8或9所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

11.根据权利要求8至10任一项所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

12.根据权利要求8至11任一项所述的方法,其特征在于,所述根据所述第一查询计划获取第二抽样算法包括:

13.根据权利要求8至12任一项所述的方法,其特征在于,所述根据...

【专利技术属性】
技术研发人员:郭欣彤
申请(专利权)人:成都华为技术有限公司
类型:发明
国别省市:

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

1