数据库访问的并行执行方法及装置制造方法及图纸

技术编号:24331102 阅读:18 留言:0更新日期:2020-05-29 19:38
本发明专利技术提供了一种数据库访问的并行执行方法、数据库访问方法及装置,其中,该并行执行方法包括:获取SQL任务的计算图;其中,所述SQL任务的计算图中的每个节点包含最高等级的操作符,每个最高等级的操作符与其包含的操作符对应一个SQL子任务;从所述SQL任务的计算图中提取尚未执行完成的所有叶子节点,并发送提取的所有叶子节点,以并行执行提取的叶子节点。通过上述方案能够实现SQL任务的并行执行,从而提高SQL任务的执行速度。

Parallel execution method and device of database access

【技术实现步骤摘要】
数据库访问的并行执行方法及装置
本专利技术涉及计算机
,尤其涉及一种数据库访问的并行执行方法及装置。
技术介绍
在互联网迅速发展的今天,数据膨胀,而且用户对服务的速度要求却越来越严苛,提升数据库访问速度是一个非常重要研究方向。并行执行是指两个或多个任务同时执行,可以显著提高系统的效率。CPU提升计算能力很大一部分就是依靠增加计算核心数量来实现的,也就是增强并行执行能力。通常,双核的计算能力可以达到单核的接近两倍。并行执行可以显著提高任务的计算速度。而数据库访问是通过执行SQL任务来实现的,一个复杂的SQL任务中存在很多数据依赖关系,难以并行执行。
技术实现思路
有鉴于此,本专利技术提供了一种数据库访问的并行执行方法、数据库访问方法及装置,以实现SQL任务的并行执行,从而提高SQL任务的执行速度。为了达到上述目的,本专利技术采用以下方案实现:根据本专利技术实施例的一个方面,提供了一种数据库访问的并行执行方法,包括:获取SQL任务的计算图;其中,所述SQL任务的计算图中的每个节点包含最高等级的操作符,每个最高等级的操作符与其包含的操作符对应一个SQL子任务;从所述SQL任务的计算图中提取尚未执行完成的所有叶子节点,并发送提取的所有叶子节点,以并行执行提取的叶子节点。在一些实施例中,最高等级的操作符为Select、Join、Union、Insert、Delete、Update、Commit、Create或Alter。在一些实施例中,所述SQL任务的计算图中的每个节点包含一个最高等级的操作符。在一些实施例中,获取SQL任务的计算图,包括:从SQL任务中提取各最高等级的操作符;基于提取的每个操作符生成一个节点;依据生成的不同节点之间的拓扑关系,并利用生成的所有节点构建所述SQL任务的计算图。在一些实施例中,所述SQL任务的计算图中的每个节点包含最高等级的操作符,还包含表数据、结果数据、参数值、及最高等级的操作符所包含的操作符中的一个或多个。在一些实施例中,所述的数据库访问的并行执行方法,还包括:在所述所有叶子节点执行完成的情况下,将所述所有叶子节点标记为执行完成;从所述SQL任务的计算图中提取各所述叶子节点所拥有的尚未执行完成的父节点,并发送提取的所有父节点,以并行执行提取的父节点。在一些实施例中,所述的数据库访问的并行执行方法,还包括:在所述SQL任务的计算图中包括各所述叶子节点的所有节点均执行完成的情况下,接收返回的所述SQL任务的执行结果。在一些实施例中,从所述SQL任务的计算图中提取尚未执行完成的所有叶子节点,并发送提取的所有叶子节点,以并行执行提取的叶子节点,包括:从所述SQL任务的计算图中提取尚未执行完成的所有叶子节点,并发送提取的所有叶子节点至硬件加速器,以使所述硬件加速器并行执行提取的叶子节点。根据本专利技术实施例的另一个方面,提供了一种数据库访问方法,包括:接收SQL任务;利用上述任一实施例所述的数据库访问的并行执行方法执行SQL任务;接收返回的所述SQL任务的执行结果,并输出所述SQL任务的执行结果。根据本专利技术实施例的又一个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。根据本专利技术实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。本专利技术实施例的数据库访问的并行执行方法、数据库访问方法、电子设备及计算机可读存储介质,通过基于SQL任务的子任务转化成的计算图实现对该SQL任务并行执行处理,结合计算图和并行执行方法,既可以解决数据依赖问题,实现SQL任务的并行执行,又能提高SQL任务的执行速度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是本专利技术一实施例的数据库访问的并行执行方法的流程示意图;图2是本专利技术一实施例的数据库访问执行方法的流程示意图;图3是本专利技术一具体实施例中SQL代码示例和相应的计算图示意图;图4是本专利技术一具体实施例的数据库访问的并行执行方法的流程示意图;图5是图3所示计算图在SQL任务执行过程中的示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。需要预先说明的是,下述实施例或示例的描述或其中所提及的特征可以以相同或类似的方式,与其他实施例或示例中的特征组合,或替换其他实施例或示例中的特征,以形成可能的实施方式。另外,本文所使用的术语“包括/包含”是指特征、要素、步骤或组件的存在,但并不排除还存在一个或多个其他特征、要素、步骤或组件。计算图(计算流图)定义为有向图,包括节点和边,其中,边代表了节点之间的依赖关系。当输入端所有数据准备好之后,节点可被分配到各种计算设备完成异步并行地执行运算。基于此,本专利技术提供了一种数据库访问的并行执行方法。图1是本专利技术一实施例的数据库访问的并行执行方法的流程示意图。如图1所示,该实施例的数据库访问的并行执行方法可包括以下步骤S110至步骤S120。下面将对步骤S110至步骤S120的具体实施方式进行详细说明。步骤S110:获取SQL任务的计算图;其中,所述SQL任务的计算图中的每个节点包含最高等级的操作符,每个最高等级的操作符与其包含的操作符对应一个SQL子任务。该SQL任务对应SQL语句,可以是一个复杂的SQL语句,可以来自客户端。每个最高等级的操作符与其包含的操作符对应的SQL子任务可以是指一个最小任务单元,例如,从某表中查询得到一个结果、删除某表中的某个数据等。最高等级的操作符可以是指最小任务单元的最外层操作的操作符,例如,可以为Select、Join、Union、Insert、Delete、Update、Commit、Create或Alter。其中,Join可包括LeftJoin和RightJoin。SQL任务的计算图中的每个节点可以包含一个或多个最高等级的操作符,即,可以包括一个或多个SQL子任务。不同节点包含的最高等级的操作符可以相同或不同。在每个节点包含多个最高等级的操作符的情况下,该多个最高等级的操作符可以是相同(例如,包含两个Select)或不同的操作符(例如,包含一个Select和一个Join),该多个最高等级的操作符对应的多个SQL子任务可以有一定指向(输入/输出)关系。在每本文档来自技高网...

【技术保护点】
1.一种数据库访问的并行执行方法,其特征在于,包括:/n获取SQL任务的计算图;其中,所述SQL任务的计算图中的每个节点包含最高等级的操作符,每个最高等级的操作符与其包含的操作符对应一个SQL子任务;/n从所述SQL任务的计算图中提取尚未执行完成的所有叶子节点,并发送提取的所有叶子节点,以并行执行提取的叶子节点。/n

【技术特征摘要】
1.一种数据库访问的并行执行方法,其特征在于,包括:
获取SQL任务的计算图;其中,所述SQL任务的计算图中的每个节点包含最高等级的操作符,每个最高等级的操作符与其包含的操作符对应一个SQL子任务;
从所述SQL任务的计算图中提取尚未执行完成的所有叶子节点,并发送提取的所有叶子节点,以并行执行提取的叶子节点。


2.如权利要求1所述的数据库访问的并行执行方法,其特征在于,最高等级的操作符为Select、Join、Union、Insert、Delete、Update、Commit、Create或Alter。


3.如权利要求1所述的数据库访问的并行执行方法,其特征在于,所述SQL任务的计算图中的每个节点包含一个最高等级的操作符。


4.如权利要求3所述的数据库访问的并行执行方法,其特征在于,获取SQL任务的计算图,包括:
从SQL任务中提取各最高等级的操作符;
基于提取的每个操作符生成一个节点;
依据生成的不同节点之间的拓扑关系,并利用生成的所有节点构建所述SQL任务的计算图。


5.如权利要求1至4任一项所述的数据库访问的并行执行方法,其特征在于,所述SQL任务的计算图中的每个节点包含最高等级的操作符,还包含表数据、结果数据、参数值、及最高等级的操作符所包含的操作符中的一个或多个。


6.如权利要求1至4任一项所述的数据库访问的并行执行方法,其特征在于,还包括:
在所述所有叶子节点执...

【专利技术属性】
技术研发人员:鄢贵海黄勇康龚施俊
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:北京;11

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

1