本申请涉及分布式数据库,具体而言,本申请涉及一种存储过程的执行方法、装置、电子设备及可读存储介质。
背景技术:
1、存储过程(stored procedure)是一组预编译的sql语句集合,存储过程的定义信息被存储在数据库中,可以被重复调用。存储过程通常用于执行特定的任务、业务逻辑或数据操作,并且可以接受参数和返回结果。
2、在分布式数据库系统中,各个存储过程的定义信息通常被存储于一个存储节点中,各个计算节点可以调用各个存储过程的定义信息并执行存储过程,由于分布式数据库系统中的计算节点较多,可能出现各个计算节点同时查询同一个存储过程的定义信息的情况,这种情况很容易导致查询热点和调用热点,影响系统各方面的性能。
技术实现思路
1、本申请实施例提供了一种存储过程的执行方法、装置、电子设备、计算机可读存储介质及计算机程序产品,用于解决背景技术中的技术问题。
2、根据本申请实施例的第一方面,提供了一种存储过程的执行方法,应用于分布式数据库的第一计算节点,第一计算节点为分布式数据库的节点集群中的任意一个计算节点,该方法包括:
3、接收针对存储过程的调用请求;
4、若调用请求是针对存储过程的首次调用请求,则从存储节点中查询并获取存储过程的定义信息和最新版本号;根据存储过程的定义信息,生成并执行存储过程的执行计划,将最新版本号作为存储过程的本地版本号,在本地内存中存储该存储过程的执行计划和本地版本号;存储节点中存储的各个存储过程的最新版本号随着存储过程的定义信息的更新而更新;
5、若调用请求是针对存储过程的非首次调用请求,则从本地内存中查询相应存储过程的执行计划和本地版本号;若确定本地内存中相应存储过程的本地版本号是最新版本号,则执行相应存储过程的执行计划。
6、根据本申请实施例的第二方面,提供了一种存储过程的执行装置,应用于分布式数据库的第一计算节点,第一计算节点为分布式数据库的节点集群中的任意一个计算节点,该装置包括:
7、第一接收模块,用于接收针对存储过程的调用请求;
8、第一执行模块,用于若调用请求是针对存储过程的首次调用请求,则从存储节点中查询并获取存储过程的定义信息和最新版本号;根据存储过程的定义信息,生成并执行存储过程的执行计划,将最新版本号作为存储过程的本地版本号,在本地内存中存储该存储过程的执行计划和本地版本号;存储节点中存储的各个存储过程的最新版本号随着存储过程的定义信息的更新而更新;
9、第二执行模块,用于若调用请求是针对存储过程的非首次调用请求,则从本地内存中查询相应存储过程的执行计划和本地版本号;若确定本地内存中相应存储过程的本地版本号是最新版本号,则执行相应存储过程的执行计划。
10、根据本申请实施例的第三方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
11、根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
12、根据本申请实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。
13、本申请实施例提供的技术方案带来的有益效果是:
14、本申请实施例计算节点的本地内存中缓存有已调用的存储过程的执行计划和本地版本号,在接收到针对存储过程的调用请求后,对于非首次调用请求,从本地内存中确定相应存储过程的执行计划和本地版本号,在确定存储过程的本地版本号是最新版本号后,直接执行本地内存中该存储过程的执行计划,一方面可有效降低各个计算节点同时调用存储过程的定义信息的概率,实现有效减少查询热点和调用热点的发生概率,提高系统各方面的性能,另一方面无需重复地进行语法解析、合法性检查以及产生执行计划,减少数据处理流程,降低了数据处理的繁琐度。
1.一种存储过程的执行方法,其特征在于,应用于分布式数据库的第一计算节点,所述第一计算节点为所述分布式数据库的节点集群中的任意一个计算节点,所述方法包括:
2.根据权利要求1所述的方法,所述若所述调用请求是针对所述存储过程的非首次调用请求,则从本地内存中查询相应存储过程的执行计划和本地版本号,之后还包括:
3.根据权利要求2所述的方法,其特征在于,所述存储节点中包括各存储过程的第一全局版本号;每个存储过程的第一全局版本号为第二计算节点基于相应存储过程的最近一次修改后的定义信息生成的最新版本号,所述第二计算节点为响应于相应存储过程的定义信息的最近一次修改操作,对相应存储过程的定义信息进行修改的计算节点;
4.根据权利要求3所述的方法,其特征在于,所述将本地内存中的相应存储过程的本地版本号更新为所述最新版本号,包括:
5.根据权利要求3或4所述的方法,其特征在于,所述本地内存中还包括各个存储过程的执行计划的有效期;每个存储过程的执行计划的有效期以第一时刻为起始时刻,以第一时刻之后预设时长的时刻为结束时刻,所述第一时刻为所述第一计算节点最近一次调用相应存储过程的定义信息时生成相应存储过程的执行计划的时刻;
6.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述接收针对任意一个存储过程的定义信息的修改信息,之后还包括:
8.根据权利要求7所述的方法,其特征在于,所述向所述节点集群中除所述第一计算节点之外的其他计算节点发送所述第一更新信息,之后还包括:
9.根据权利要求3所述的方法,其特征在于,所述方法还包括:
10.根据权利要求2所述的方法,其特征在于,所述存储过程的定义信息包括存储过程的标识、输入参数、输出参数以及sql语句集;
11.一种存储过程的执行装置,其特征在于,应用于分布式数据库的第一计算节点,所述第一计算节点为所述分布式数据库的节点集群中的任意一个计算节点,所述装置包括:
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-10任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述方法的步骤。
