【技术实现步骤摘要】
分布式存储过程的运行方法、电子设备及存储介质
[0001]本专利技术实施例涉及数据库领域,特别涉及一种分布式存储过程的运行方法、电子设备及存储介质。
技术介绍
[0002]存储过程(英文:Stored Procedure)是存储于数据库系统中的一组能够完成特定功能的语句集,存储过程经过第一次编译后,在后续调用时无需再次编译,用户可以通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来运行存储过程。分布式数据库系统中通常包括存储过程引擎和结构化查询语言(Structured Query Language,简称“SQL”)处理引擎,存储过程引擎用于运行存储过程,而SQL处理引擎用于执行存储过程中的SQL指令。
[0003]在实现本专利技术实施例的过程中,专利技术人发现,在执行存储过程的过程中,SQL处理引擎与存储过程引擎之间的消息交互次多,影响执行存储过程的效率。
技术实现思路
[0004]本专利技术实施例的目的在于提供一种分布式存储过程的运行方法、电子设备及存储介质,提高了分布式存储过程运行的效 ...
【技术保护点】
【技术特征摘要】
1.一种分布式存储过程的运行方法,其特征在于,包括:获取存储过程中的第一结构化查询语言SQL指令;判断第一SQL指令中SQL指令的类型,获得第一判断结果;若所述第一判断结果指示所述第一SQL指令中存在非游标的查询类SQL指令,则生成第一处理请求,所述第一处理请求包括所述非游标的查询类SQL指令以及返回结果集信息的返回指示信息;向所述SQL处理引擎发送所述第一处理请求,以供所述SQL处理引擎向存储过程引擎返回所述非游标的查询类SQL指令的结果状态以及所述结果集信息。2.根据权利要求1所述的分布式存储过程的运行方法,其特征在于,若所述第一判断结果指示存在游标中的查询类SQL指令,所述方法还包括:向所述SQL处理引擎发送第二处理请求,所述第二处理请求包括所述游标中的查询类SQL指令,以供所述SQL处理引擎返回状态消息,所述状态消息包括所述游标中的查询类SQL指令的结果状态;判断接收的所述状态消息中是否存在结果集的容量信息,获取第二判断结果;若所述第二判断结果指示所述状态消息中存在所述结果集的容量信息,则向所述SQL处理引擎发送获取n行的结果集的第一获取请求,以供所述SQL处理引擎返回n行的结果集,n为大于1的整数;若所述第二判断结果指示所述状态消息中不存在结果集的容量信息,则在所述存储过程引擎所处设备中检测是否存在所述SQL处理引擎,若是存在,则向所述SQL处理引擎发送获取所有结果集的第二获取请求,以供所述SQL处理引擎返回所有结果集的存储信息;按照所述存储信息获取所有结果集。3.根据权利要求1或2所述的分布式存储过程的运行方法,其特征在于,所述获取存储过程中的第一结构化查询语言SQL指令,包括:获取当前执行存储过程中的第二SQL指令;判断所述第二SQL指令是否属于游标中的常规SQL指令,获取第三判断结果;若所述第三判断结果指示所述第二SQL指令为游标中的常规SQL指令,则缓存所述第二SQL指令,继续返回获取下一条第二SQL指令的步骤;若所述第三判断结果指示所述第二SQL指令属于目标类型,则将缓存区内的SQL指令以及所述第二SQL指令合并作为所述第一SQL指令,其中,所述目标类型包括常规SQL指令以及属于游标中的查询类SQL指令且所述游标对应的SQL指令未被发送至所述SQL处理引擎。4.一种分布式存储过程的运行方法,其特征在于,包括:接收存储过程引擎发送的请求消息;判断所述请求消息中是否存在第一处理请求,获取第四判断结果,所述第一处理请求包括:非游标的查询类SQL指令以及返回结果集信息的返回指示信息;若所述第四判断结果指示存在所述第一处理请求,则向所述存储过程引擎返回所述非游标的查询类SQL指令的...
【专利技术属性】
技术研发人员:李金虎,赵培,俞义方,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。