执行语句的方法、装置、服务器及存储介质制造方法及图纸

技术编号:27436810 阅读:18 留言:0更新日期:2021-02-25 03:28
本申请公开了一种执行语句的方法、装置、服务器及存储介质,属于大数据技术领域。所述方法包括:多个任务包括的SQL语句并行执行,多个任务中的每个任务包括的SQL语句串行执行,多个任务中的一个任务为第一任务。获取新的多条SQL语句,新的多条SQL语句中的每条SQL语句依次为目标SQL语句。在目标SQL语句属于第一任务关联的事务时,将目标SQL语句添加至第一任务中。采用本申请,可以提高执行SQL语句的效率。率。率。

【技术实现步骤摘要】
执行语句的方法、装置、服务器及存储介质


[0001]本申请涉及大数据
,特别涉及一种执行语句的方法、装置、服务器及存储介质。

技术介绍

[0002]在数据库(如关系型数据库等)中,常会运行外部的结构化查询语言(structured query language,SQL)语句来操作数据库。一般是通过某些工具,将多条SQL语句串行或者并行的加载到数据库中进行执行,以实现操作数据库。
[0003]相关技术中,通过MySQL导入(MySQL import)工具,将多条SQL语句逐行读入,串行执行SQL语句,以实现操作数据库。
[0004]这样,由于所有SQL语句均是串行执行,所以会导致执行SQL语句的效率比较低。

技术实现思路

[0005]为了解决执行SQL语句的效率比较低的问题,本申请提供了一种执行语句的方法、装置、服务器及存储介质。
[0006]第一方面,本申请提供了一种执行语句的方法。在该所述方法中,多个任务包括的SQL语句并行执行,所述多个任务中的每个任务包括的SQL语句串行执行,所述多个任务中的一个任务为第一任务。服务器获取新的多条SQL语句,所述新的多条SQL语句中的每条SQL语句依次为目标SQL语句。在所述目标SQL语句属于所述第一任务关联的事务时,服务器将所述目标SQL语句添加至所述第一任务中。
[0007]本申请所示的方案,在服务器获取到新的多条SQL语句时,要执行这多条SQL语句,服务器可以在多条SQL语句中依次解析得到每一条SQL语句,将每一条SQL语句依次称为是目标SQL语句。然后服务器可以判断多个任务中是否关联有目标SQL语句所属的事务,在第一任务关联有目标SQL语句所属的事务时,服务器可以将目标SQL语句添加至第一任务,并且设置在当前第一任务中的所有SQL语句的最后面。这样,属于同一事务的SQL语句添加到一个任务中。另外,由于不同任务的SQL语句可以并行执行,而不是所有的SQL语句都串行执行,所以可以提高执行SQL语句的效率。
[0008]在第一方面的一种可能的实现方式中,在该所述方法中,在所述目标SQL语句不属于所述多个任务关联的任一事务时,服务器获取所述目标SQL语句的元数据信息。在第二任务包括元数据信息与所述目标SQL语句的元数据信息相同的SQL语句时,服务器将所述目标SQL语句添加至所述第二任务中,所述第二任务为所述多个任务中的一个任务。
[0009]其中,对于任一SQL语句,元数据信息可以表征该SQL语句所要操作的数据库对象,或者在操作过程使用到的数据库对象。元数据信息可以包括数据库名、表名、列名(也可以称为字段名),可选地,该元数据信息可以包括该数据库名、该表名、该列名、外键名、索引名和函数名等。该数据名用于指示所要操作的数据库的名称。该表名用于指示SQL语句所操作的数据表的名称。该列名用于指示SQL语句所操作的对象所在的列。该外键名指与数据表关
联的数据表的主键名。该索引名指示SQL语句所操作的对象的索引。
[0010]本申请所示的方案,在任一任务中均未关联目标SQL语句所属的事务时,服务器可以获取目标SQL语句的元数据信息。然后服务器在多个任务中,确定是否包括元数据信息与目标SQL语句的元数据信息相同的SQL语句。在第二任务包括元数据信息与目标SQL语句的元数据信息相同的SQL语句时,服务器可以将目标SQL语句添加至第二任务中,并设置在当前第二任务中所有SQL语句的最后面。这样,对于操作对象相同的SQL语句,设置在同一任务中串行执行,可以尽可能的保证执行同一SQL语句时执行结果相同。
[0011]在第一方面的一种可能的实现方式中,在该所述方法中,在所述多个任务中不存在元数据信息与所述目标SQL语句的元数据信息相同的SQL语句时,服务器建立包括所述目标SQL语句的新任务,所述新任务与所述多个任务并行执行。
[0012]本申请所示的方案,在任一任务中均不包括元数据信息与目标SQL语句的元数据信息相同的SQL语句时,服务器可以建一个新任务,将目标SQL语句添加至该新任务中。这样,在目标SQL语句与已经在任务中的SQL语句均没有关系时,可以为目标SQL语句建立一个新任务,从而,该新任务可以与其它任务并行执行,提高执行SQL语句的执行效率。
[0013]在第一方面的一种可能的实现方式中,在该所述方法中,服务器按照所述新的多条SQL语句的时间顺序,确定是否存在所述目标SQL语句所属的事务。
[0014]本申请所示的方案,多条SQL语句中每条SQL语句均对应有时间标识,服务器可以基于每条SQL语句对应的时间标识,确定出多条SQL语句的时间顺序。或者,新的多条SQL语句本身是按照时间顺序进行排列的,服务器从多条SQL语句的最前面开始识别,并且是依次识别,SQL语句被服务器识别到的顺序,即为多条SQL语句的时间顺序。
[0015]然后服务器可以基于多条SQL语句的时间顺序,确定目标SQL语句是否位于事务的开始的SQL语句和结束的SQL语句之间。若位于事务的开始的SQL语句和结束的SQL语句之间,则服务器确定存在目标SQL语句所属的事务。若不位于任何事务的开始的SQL语句和结束的SQL语句之间,则服务器确定不存在目标SQL语句所属的事务。
[0016]在第一方面的一种可能的实现方式中,在所述方法中,若所述目标SQL语句属于目标事务的开始的SQL语句和结束的SQL语句之间,则服务器确定所述目标事务为所述目标SQL语句所属的事务。若所述目标SQL语句不属于任何事务的开始的SQL语句和结束的SQL语句之间,则服务器生成一个所述目标SQL语句所属的事务。
[0017]本申请所示的方案,在服务器识别到事务的开始的SQL语句时,可以生成一个事务,在遇到该事务的结束的SQL语句之前,这之间的所有SQL语句均属于该事务。所以若目标SQL语句属于目标事务的开始的SQL语句和结束的SQL语句之间,则服务器可以确定目标事务是目标SQL语句所属的事务。在未识别到事务的开始的SQL语句时,服务器可以生成一个目标SQL语句所属的事务。
[0018]第二方面,本申请提供了一种执行语句的装置,该装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面或第一方面的可能的实施方式所提供的执行语句的方法。
[0019]第三方面,本申请提供了一种执行语句的服务器,该服务器包括处理器和存储器,所述存储器用于存储一个或多个指令,所述处理器通过执行所述一个或多个指令来实现上述第一方面或第一方面的可能的实施方式所提供的执行语句的方法,或者所述处理器通过
执行所述一个或多个指令来实现上述第二方面提供的执行语句的装置。
[0020]第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有指令,当计算机可读存储介质在服务器上运行时,使得服务器执行上述第一方面或第一方面的可能的实施方式所提供的执行语句的方法,或者使得所述服务器部署上述第二方面提供的执行语句的装置。
[0021]第五方面,本申本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种执行语句的方法,其特征在于,多个任务包括的结构化查询语言SQL语句并行执行,所述多个任务中的每个任务包括的SQL语句串行执行,所述多个任务中的一个任务为第一任务;所述方法包括:获取新的多条SQL语句,所述新的多条SQL语句中的每条SQL语句依次为目标SQL语句;在所述目标SQL语句属于所述第一任务关联的事务时,将所述目标SQL语句添加至所述第一任务中。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述目标SQL语句不属于所述多个任务关联的任一事务时,获取所述目标SQL语句的元数据信息;在第二任务包括元数据信息与所述目标SQL语句的元数据信息相同的SQL语句时,将所述目标SQL语句添加至所述第二任务中,所述第二任务为所述多个任务中的一个任务。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述多个任务中不存在元数据信息与所述目标SQL语句的元数据信息相同的SQL语句时,建立包括所述目标SQL语句的新任务,所述新任务与所述多个任务并行执行。4.根据权利要求1至3任一所述的方法,其特征在于,所述方法包括:按照所述新的多条SQL语句的时间顺序,确定是否存在所述目标SQL语句所属的事务。5.根据权利要求1至4任一所述的方法,其特征在于,所述方法包括:若所述目标SQL语句属于目标事务的开始的SQL语句和结束的SQL语句之间,则确定所述目标事务为所述目标SQL语句所属的事务;若所述目标SQL语句不属于任何事务的开始的SQL语句和结束的SQL语句之间,则生成一个所述目标SQL语句所属的事务。6.一种执行语句的装置,其特征在于,多个任务包括的结构化查询语言SQL语句并行执行,所述多个任务中的每个任务包括的SQL语句串行执行,所述多个任务中的一个任务为第一任务,所述装置包括:获取模块,用于获取新的多条SQL语句,所述新的多条SQL语句中的每条SQL语句依次为目标SQL语句;添加模块,用于在所述目标SQL语句属于所述第一任务关联的事务时,将所述目标SQL语句添加至所述第一任务中。7....

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

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

1