System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据库,尤其是涉及一种多查询共享的排序归并连接方法、设备、存储介质及程序产品。
技术介绍
1、对于数据库管理系统,长期以来都是采取单次查询的执行模式,即系统在处理单次查询的时候,为该查询创建一个线程,各个查询线程之间互不影响。
2、各查询从查询编译、生成查询计划、检查缓存、执行查询计划到返回结果等各个步骤,均是独立完成。当多个查询同时执行时,各个物理计划之间会竞争相应的磁盘i/o访问资源和cpu计算资源。这导致尽管现代数据库系统可以有效地优化和执行单个复杂olap(online transaction processing)或oltp(on line transaction processing)查询,但是当多个复杂查询同时运行时,它们的性能将显著下降。
3、为了提高并发环境下的性能(其核心是提高资源利用率以减少资源争用),解决方案通常包含三种:1)构建缓存池以共享部分数据,这种数据被动的共享模式往往存在缓存命中率低。2)利用不同查询之间访问数据重叠的特性构建物化视图,物化视图利用了不同查询之间的共性,但却潜在着大量维护视图的成本的问题。3)针对相似的查询缓存查询结果和查询计划,此类方法适用的场景较窄,可扩展性不高,仅适合于查询语句单一,查询结果变化较小的场景。
4、由于单查询模式的局限性,不同查询在执行过程中相互隔离,使得很多显而易见的优化机会无法实现。并发查询往往会存在很多重复的算子,例如多个查询扫描同一个数据集,多个查询对同一个中间结果进行排序等等。这些可以共同执行的机会在
技术实现思路
1、针对现有技术中存在的问题,本专利技术提供了一种多查询共享的排序归并连接方法、设备、存储介质及程序产品,至少部分的解决现有技术中存在的系统的吞吐量降低导致计算机cpu资源和i/o资源的开销大的问题。
2、第一方面,本公开实施例提供了一种多查询共享的排序归并连接方法,包括:
3、将单位时间t提交的所有连接查询语句进行合并;
4、为合并后的查询语句生成查询计划;
5、对查询计划的内关系表进行扫描,并根据全局谓词条件选择出满足条件的第一结果,并为第一结果集中的每个数据添加一个查询id集合;
6、对查询计划的外关系表进行扫描,并根据全局谓词条件选择出满足条件的第二结果,并为第二结果集中的每个数据添加一个查询id集合;
7、分别对第一结果和第二结果进行排序;
8、根据连接条件将排序后的第一结果和第二结果归并,并且取第一结果查询id集合和第二结果查询id集合的交集,从而去掉结果为空的集合所对应的记录;
9、对取交集的结果进行扫描,将查询id为i的结果返回给查询第i个客户端,i属于正整数。
10、可选的,连接查询语句进行合并,包括将多个连接条件相同的查询语句合并为一个新的连接查询语句,该连接查询语句包括各个原查询语句的所有谓词条件以及连接条件。
11、可选的,所述全局谓词条件由多个查询语句的谓词条件合并产生。
12、可选的,所述根据连接条件将排序后的第一结果和第二结果归并,包括将第一结果和第二结果中的连接属性值进行等值连接运算。
13、第二方面,本公开实施例还提供了一种多查询共享的排序归并连接装置,包括:包括:
14、合并模块,用于将单位时间t提交的所有连接查询语句进行合并;
15、计划生成模块,用于为合并后的查询语句生成查询计划;
16、第一结果扫描模块,用于对查询计划的内关系表进行扫描,并根据全局谓词条件选择出满足条件的第一结果,并为第一结果集中的每个数据添加一个查询id集合;
17、第二结果扫描模块,用于对查询计划的外关系表进行扫描,并根据全局谓词条件选择出满足条件的第二结果,并为第二结果集中的每个数据添加一个查询id集合;
18、排序模块,用于分别对第一结果和第二结果进行排序;
19、归并模块,用于根据连接条件将排序后的第一结果和第二结果归并,并且取第一结果查询id集合和第二结果查询id集合的交集,从而去掉结果为空的集合所对应的记录;
20、返回模块,用于对取交集的结果进行扫描,将查询id为i的结果返回给查询第i个客户端,i属于正整数。
21、可选的,连接查询语句进行合并,包括将多个连接条件相同的查询语句合并为一个新的连接查询语句,该连接查询语句包括各个原查询语句的所有谓词条件以及连接条件。
22、可选的,所述全局谓词条件由多个查询语句的谓词条件合并产生。
23、第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
24、至少一个处理器;以及,
25、与所述至少一个处理器通信连接的存储器;其中,
26、所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面任一所述的多查询共享的排序归并连接方法。
27、第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行第一方面任一所述的多查询共享的排序归并连接方法。
28、第五方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现第一方面任一所述的多查询共享的排序归并连接方法。
29、本专利技术提供的多查询共享的排序归并连接方法、设备、存储介质及程序产品,其中该多查询共享的排序归并连接方法,通过将多个连接查询的公共部分合并,并且采用排序归并连接的算法对合并后的查询进行执行,对于现有技术查询模式需要执行多次的连接和/或扫描等运算仅仅只需要执行一次。保证查询正确性的情况下,同时执行多个连接查询的公共部分,非公共部分则分开执行,避免了并发查询下,大量不必要计算的重复执行,从而达到减小cpu资源和i/o资源的开销的目的。
本文档来自技高网...【技术保护点】
1.一种多查询共享的排序归并连接方法,其特征在于,包括:
2.根据权利要求1所述的多查询共享的排序归并连接方法,其特征在于,连接查询语句进行合并,包括将多个连接条件相同的查询语句合并为一个新的连接查询语句,该连接查询语句包括各个原查询语句的所有谓词条件以及连接条件。
3.根据权利要求1所述的多查询共享的排序归并连接方法,其特征在于,所述全局谓词条件由多个查询语句的谓词条件合并产生。
4.根据权利要求1所述的多查询共享的排序归并连接方法,其特征在于,所述根据连接条件将排序后的第一结果和第二结果归并,包括将第一结果和第二结果中的连接属性值进行等值连接运算。
5.一种多查询共享的排序归并连接装置,其特征在于,包括:
6.根据权利要求5所述的多查询共享的排序归并连接装置,其特征在于,连接查询语句进行合并,包括将多个连接条件相同的查询语句合并为一个新的连接查询语句,该连接查询语句包括各个原查询语句的所有谓词条件以及连接条件。
7.根据权利要求5所述的多查询共享的排序归并连接装置,其特征在于,所述全局谓词条件由多个查询语
8.一种电子设备,其特征在于,所述电子设备包括:
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行权利要求1-4任一所述的多查询共享的排序归并连接方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-4所述的多查询共享的排序归并连接方法。
...【技术特征摘要】
1.一种多查询共享的排序归并连接方法,其特征在于,包括:
2.根据权利要求1所述的多查询共享的排序归并连接方法,其特征在于,连接查询语句进行合并,包括将多个连接条件相同的查询语句合并为一个新的连接查询语句,该连接查询语句包括各个原查询语句的所有谓词条件以及连接条件。
3.根据权利要求1所述的多查询共享的排序归并连接方法,其特征在于,所述全局谓词条件由多个查询语句的谓词条件合并产生。
4.根据权利要求1所述的多查询共享的排序归并连接方法,其特征在于,所述根据连接条件将排序后的第一结果和第二结果归并,包括将第一结果和第二结果中的连接属性值进行等值连接运算。
5.一种多查询共享的排序归并连接装置,其特征在于,包括:
6.根据权利要求5所述的多查...
【专利技术属性】
技术研发人员:江晶,
申请(专利权)人:上海丛云信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。