【技术实现步骤摘要】
【国外来华专利技术】本申请要求于2014年4月29日递交的专利技术名称为“存储过程中多查询乱序执行的系统和方法”的第14/264,851号美国非临时专利申请案的在先申请优先权,其全部内容通过引用结合在本申请中。
本专利技术涉及数据库查询处理,在实施例中,尤其涉及用于存储过程中多查询乱序执行的系统和方法。
技术介绍
在数据库系统中,存储过程由多个结构化查询语言(structuredquerylanguage,SQL)语句(这里也称为查询)组成,用来计算结果。所述过程可以包括顺序执行、分支、循环和对其他存储过程的调用。当写入所述存储过程时,开发者采用顺序执行模型以得到正确的结果。然而,在某些情况下,可能会调度这些语句以使其并行运行,从而实现最佳响应时间。多个商业数据库支持内部并行查询,使一个查询可以分为多个更小的并行部分,以利用更多的资源(例如,处理器核、存储器)。这在某些情况下有助于传统的串行执行方案。然而,多查询乱序(outoforder,OOO)执行能够便于某些场景,其中该过程中,查询或语句是乱序执行的。一种用于调度存储过程中OOO多查询的有效方法例如有利于实现响应时间的提升和/或更好的资源利用。
技术实现思路
根据一实施例,一种由数据库处理系统多查询乱序(outoforder,OOO)执行的方法包括:在编译过程时,检测多个语句即数据库查询语言语句之间的依赖关系;在依赖关系表中保持所述语句的依赖关系。所述方法还包括:在执行所述过程时,检测所述语句之间依赖关系的变化;当检测到所述依赖关系的变化时,在所述依赖关系表中更新所述依赖关系;根据所述依赖关系表对所述语句进行调度以进行OOO ...
【技术保护点】
一种由数据库处理系统进行多查询的乱序(out of order,OOO)执行的方法,其特征在于,所述方法包括:在编译过程时,检测多个语句即数据库查询语言语句之间的依赖关系;在依赖关系表中保持所述语句的依赖关系;在执行所述过程时,检测所述语句之间依赖关系的变化;当检测到所述依赖关系的变化时,在所述依赖关系表中更新所述依赖关系;根据所述依赖关系表对所述语句进行调度以进行OOO执行。
【技术特征摘要】
【国外来华专利技术】2014.04.29 US 14/264,8511.一种由数据库处理系统进行多查询的乱序(outoforder,OOO)执行的方法,其特征在于,所述方法包括:在编译过程时,检测多个语句即数据库查询语言语句之间的依赖关系;在依赖关系表中保持所述语句的依赖关系;在执行所述过程时,检测所述语句之间依赖关系的变化;当检测到所述依赖关系的变化时,在所述依赖关系表中更新所述依赖关系;根据所述依赖关系表对所述语句进行调度以进行OOO执行。2.根据权利要求1所述的方法,其特征在于,所述根据所述依赖关系表对所述语句进行调度以进行OOO执行包括:在无需等待第一语句执行完成时调度第二语句以进行执行其中,按照所述依赖关系表,在所述过程中,所述第二语句跟随所述第一语句之后,并且独立于所述第一语句。3.根据权利要求2所述的方法,其特征在于,所述调度第二语句以进行执行还包括:比较在所述第一语句执行完成前执行所述第二语句的成本;当根据所述成本确定OOO执行所述第二语句有益时,在所述第一语句执行完成前执行所述第二语句。4.根据权利要求1至3中任意一项所述的方法,其特征在于,检测所述语句之间的所述依赖关系包括:在编译所述过程时,确定执行所述语句中每个语句的成本;当确定语句的成本超过预定义的阈值时,对所述语句进行依赖关系分析。5.根据权利要求4所述的方法,其特征在于,所述对所述语句进行依赖关系分析包括:将所述语句的每个读入对象加入读入集;将所述语句的每个写入对象加入写入集;将所述语句的所述读入集和所述写入集插入所述依赖关系表中的相应条目中。6.根据权利要求1至3中的任意一项所述的方法,其特征在于,检测所述语句之间的所述依赖关系包括:检测执行第一语句是否会影响在所述过程中跟随所述第一语句之后的所述第二语句的执行。7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述语句包括由一个查询分成的多个查询片段。8.根据权利要求7所述的方法,其特征在于,还包括:在编译时,当检测到实用命令时,插入界限来标记查询树的相应片段。9.根据权利要求8所述的方法,其特征在于,对于每个语句,在执行所述过程时,根据所述表中所述语句的依赖关系信息确定所述第二语句的OOO执行,而不越过所述界限对语句进行调度执行。10.根据权利要求1至9中的任意一项所述的方法,其特征在于,检测所述语句之间的所述依赖关系包括:在所述语句中识别每个读入对象、写入对象、对象粒度、根据所述语句的执行结果的隐式数据库依赖关系以及查询粒度。11.一种支持多查询乱序(outoforder,OOO)执行的数据库系统的处理组件,其特征在于,所述处理组件包括:至少一个处理器;非瞬时性计算机可读存储介质,用于存储由所述至少一个处理器执行的程序,其中,所述程序包括指令,用于:在编译过程时,检测多个语句即数据库查询语言语句之间的依赖关系;在依赖关系表中保持所述语句的依赖关系;在执行所述过程时,检测所述语句之间依赖关系的变化;当检测到所述依赖关系的变化时,在所述依赖关系表中更新所述依赖关系;根据所述依赖关系表对所述语句进行调度以进行OOO执行。12.根据权利要求11所述的处理组件,其特征在于,用于根据所述依赖关系表对所述语句进行调度以进行OOO执行的指令包括:用于在无需等待第一语句执行完成时调度第二语句以进行执行的指令。13.根据权利要求12所述的处理组件,其特征在于,在所述过程中所述第二语句跟随所述第一语句之后,并且独立于所述第一语句。14.根据权利要求11至13中任意一项所述的处理组件,其...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。