CN112711602A - 一种存储过程的运行方法、装置,数据库***及存储介质 - Google Patents
一种存储过程的运行方法、装置,数据库***及存储介质 Download PDFInfo
- Publication number
- CN112711602A CN112711602A CN201911025993.7A CN201911025993A CN112711602A CN 112711602 A CN112711602 A CN 112711602A CN 201911025993 A CN201911025993 A CN 201911025993A CN 112711602 A CN112711602 A CN 112711602A
- Authority
- CN
- China
- Prior art keywords
- sql
- engine
- stored procedure
- processing engine
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2443—Stored procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种存储过程的运行方法、装置,数据库***及存储介质。该方法包括:结构化查询语言SQL处理引擎向存储过程引擎发送存储过程执行请求消息;SQL处理引擎多次执行存储过程引擎发送的SQL执行请求消息;SQL处理引擎接收存储过程引擎发送的存储过程执行响应消息。
Description
技术领域
本申请涉及数据库领域,例如涉及一种存储过程的运行方法、装置,数据库***及存储介质。
背景技术
存储过程(Stored Procedure)是存储于数据库***中的一组能够完成特定功能的结构化查询语言(Structured Query Language,SQL)语句集,包括SQL语句及流程控制语句。在分布式数据库中,对于存储过程的执行和SQL的执行,需要分别访问不同的引擎,因此会导致应用存在限定,即应用中SQL的执行与存储过程的执行需要访问分布式数据库中的不同部件。另外,在部分分布式数据库中,SQL执行引擎与存储过程的执行紧密耦合,会导致其中一个发生故障引起整个功能故障。在很多在线业务场景中,SQL执行引擎需要保证具有高可靠、高可用性,不能因为加入分布式存储过程功能而引起SQL执行引擎的不稳定。
发明内容
本申请提供一种存储过程的运行方法、装置,数据库***及存储介质,能够在分布式数据库中实现分布式存储过程的运行,同时保证了SQL执行引擎的稳定性。
本申请实施例提供一种存储过程的运行方法,包括:
结构化查询语言SQL处理引擎向存储过程引擎发送存储过程执行请求消息;
SQL处理引擎多次执行存储过程引擎发送的SQL执行请求消息;
SQL处理引擎接收存储过程引擎发送的存储过程执行响应消息。
本申请实施例提供一种存储过程的运行方法,包括:
存储过程引擎接收结构化查询语言SQL处理引擎发送的存储过程执行请求消息;
存储过程引擎多次构造并向SQL处理引擎发送SQL执行请求消息;
存储过程引擎向SQL处理引擎发送存储过程执行响应消息。
本申请实施例提供一种SQL处理引擎,包括:处理器,处理器用于在执行计算机程序时实现上述任一实施例的方法。
本申请实施例提供一种存储过程引擎,包括:处理器,处理器用于在执行计算机程序时实现上述任一实施例的方法。
本申请实施例提供一种数据库***,数据库***包括:上述任一实施例的存储过程引擎和上述任一实施例的结构化查询语言SQL执行引擎。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的方法。
关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。
附图说明
图1为一实施例提供的一种数据库***的结构示意图;
图2为一实施例提供的一种存储过程的运行方法的流程示意图;
图3为一实施例提供的另一种存储过程的运行方法的流程示意图;
图4为一实施例提供的一种存储过程的运行方法的交互示意图;
图5为一实施例提供的另一种存储过程的运行方法的交互示意图;
图6为一实施例提供的又一种存储过程的运行方法的交互示意图;
图7为一实施例提供的一种存储过程的运行装置的结构示意图;
图8为一实施例提供的另一种存储过程的运行装置的结构示意图;
图9为一实施例提供的一种SQL处理引擎的结构示意图;
图10为一实施例提供的一种存储过程引擎的结构示意图。
具体实施方式
下文中将结合附图对本申请的实施例进行详细说明。
存储过程是存储于数据库***中的一组能够完成特定功能的SQL语句集,存储过程可以包括SQL语句(SQL语句通常为一个表达式,该表达式可以包括至少一个子表达式)和流程控制语句(一个流程控制语句可以构成一个流程控制语句块,该流程控制语句块可以包括多个SQL语句)。
在传统关系型数据库中,只有一个数据存储结点,存储过程存储在这个结点上。SQL与存储过程在执行时,访问、修改等操作的都是此存储结点中的数据。而在分布式数据库中,存在多个数据存储结点,存储过程的执行需要协调所有的数据存储结点来完成,而不能是简单地把存储过程放到各个数据存储结点上独立执行。在现有的分布式数据库中,对于存储过程的执行和SQL的执行,需要分别访问不同的引擎(例如:对于存储过程的执行需要访问过程语言(Procedural Language,PL)引擎,对于SQL的执行需要访问SQL执行引擎),因此会导致应用存在限定,即应用中SQL的执行与存储过程的执行需要访问分布式数据库中的不同部件。另外,在部分分布式数据库中,SQL执行引擎与存储过程的执行紧密耦合,会导致其中一个发生故障引起整个功能故障。在很多在线业务场景中,SQL执行引擎需要保证具有高可靠、高可用性,不能因为加入分布式存储过程功能而引起SQL执行引擎的不稳定。
图1为一实施例提供的一种数据库***的结构示意图。如图1所示,该数据库***包括存储过程引擎和SQL执行引擎,存储过程引擎用于运行存储过程,具有执行存储过程流程控制的功能,属于分布式数据库的存储过程执行引擎模块;而SQL执行引擎用于执行存储过程中的SQL语句,具有SQL的执行能力,属于分布式数据库的SQL执行模块。SQL执行引擎向用户提供接入点,接收用户请求,实现单一接入点方式(即应用程序访问这个接入点来执行用户请求的SQL与存储过程,不需要对应用程序进行定制化)。SQL执行引擎还与n个数据存储结点(DB)连接。在本申请实施例中,提供一种可运行于上述数据库***的存储过程的运行方法,能够在分布式数据库中实现分布式存储过程的运行,同时保证了SQL执行引擎的稳定性。
本申请中术语“***”和“网络”在本申请中常被可互换使用。本申请下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本申请实施例对此不作具体限制。
下面,对存储过程的运行方法、装置,数据库***及其技术效果进行描述。
图2为一实施例提供的一种存储过程的运行方法的流程示意图,如图2所示,本实施例提供的方法适用于SQL处理引擎,该方法包括如下步骤。
S110、SQL处理引擎向存储过程引擎发送存储过程执行请求消息。
在一实施例中,在步骤S110执行前,SQL处理引擎接收用户输入的请求消息。用户输入的请求消息可以包括SQL执行请求消息和存储过程执行请求消息中的至少一个。若用户输入的请求消息为SQL执行请求消息,则SQL处理引擎直接执行SQL执行请求消息;若用户输入的请求消息为存储过程执行请求消息,则SQL处理引擎继续执行步骤S110。
SQL处理引擎可以通过解析用户输入的请求消息来识别用户输入的请求消息是SQL执行请求消息还是存储过程执行请求消息。
S120、SQL处理引擎多次执行存储过程引擎发送的SQL执行请求消息。
在一实施例中,步骤S120可以包括如下步骤。
步骤a)SQL处理引擎接收存储过程引擎发送的SQL执行请求消息;
步骤b)SQL处理引擎处理SQL执行请求消息;
步骤c)SQL处理引擎向存储过程引擎发送SQL执行响应消息;
步骤d)SQL处理引擎接收存储过程引擎发送的SQL结果集请求消息;
步骤e)SQL处理引擎根据SQL结果集请求消息,向存储过程引擎发送SQL结果集响应消息,SQL结果集响应消息携带SQL的执行结果。
步骤f)SQL处理引擎接收存储过程引擎发送的SQL结果释放指示消息;
步骤g)SQL处理引擎根据SQL结果释放指示消息,释放SQL结果集。
SQL处理引擎返回执行步骤a),直至存储过程引擎不再发送SQL执行请求消息。
在一实施例中,若SQL处理引擎在执行存储过程引擎发送的SQL执行请求消息时出错,则SQL处理引擎向存储过程引擎发送错误提示消息。
S130、SQL处理引擎接收存储过程引擎发送的存储过程执行响应消息。
在一实施例中,当SQL处理引擎接收到存储过程引擎发送的存储过程执行响应消息后,SQL处理引擎将最终的存储过程执行结果反馈给用户。
图3为一实施例提供的另一种存储过程的运行方法的流程示意图,如图3所示,本实施例提供的方法适用于存储过程引擎,该方法包括如下步骤。
S210、存储过程引擎接收SQL处理引擎发送的存储过程执行请求消息。
S220、存储过程引擎多次构造并向SQL处理引擎发送SQL执行请求消息。
在一实施例中,步骤S220可以包括如下步骤。
步骤a)存储过程引擎根据存储过程执行请求消息,构造SQL执行请求消息;
步骤b)存储过程引擎向SQL处理引擎发送SQL执行请求消息;
步骤c)存储过程引擎接收SQL处理引擎发送的SQL执行响应消息;
步骤d)存储过程引擎向SQL处理引擎发送SQL结果集请求消息;
步骤e)存储过程引擎接收SQL处理引擎发送的SQL结果集响应消息,SQL结果集响应消息携带SQL的执行结果。
步骤f)存储过程引擎向SQL处理引擎发送SQL结果释放指示消息。
存储过程引擎返回执行步骤a),直至存储过程引擎不再构造SQL执行请求消息。
S230、存储过程引擎向SQL处理引擎发送存储过程执行响应消息。
在一实施例中,若存储过程引擎在执行存储过程时出错,则存储过程引擎将错误信息写入存储过程执行响应消息中。
下面罗列一些交互实施方式,用于说明图2和图3描述的存储过程的运行方法。
图4为一实施例提供的一种存储过程的运行方法的交互示意图,如图4所示,该方法包括如下步骤。
S310、SQL处理引擎向存储过程引擎发送存储过程执行请求消息。
在一实施例中,在步骤S310执行前,SQL处理引擎接收用户输入的请求消息。用户输入的请求消息可以包括SQL执行请求消息和存储过程执行请求消息中的至少一个。若用户输入的请求消息为SQL执行请求消息,则SQL处理引擎直接执行SQL执行请求消息;若用户输入的请求消息为存储过程执行请求消息,则SQL处理引擎继续执行步骤S310。
SQL处理引擎可以通过解析用户输入的请求消息来识别用户输入的请求消息是SQL执行请求消息还是存储过程执行请求消息。
在一实施例中,存储过程执行请求消息包括CALL语句和参数信息。参数信息包括出参信息、入参信息和出入参信息中的至少一项。
S311、存储过程引擎接收SQL处理引擎发送的存储过程执行请求消息。
S312、存储过程引擎根据存储过程执行请求消息,构造SQL执行请求消息。
存储过程引擎在接收到存储过程执行请求消息后,调用内部处理过程来执行该存储过程,当在执行中遇到SQL指令时,存储过程引擎会构造出完整的SQL语句(即SQL执行请求消息),然后发送给SQL处理引擎执行,并等待SQL处理引擎返回执行结果。
S313、存储过程引擎向SQL处理引擎发送SQL执行请求消息。
S314、SQL处理引擎接收存储过程引擎发送的SQL执行请求消息。
S315、SQL处理引擎处理SQL执行请求消息。
S316、SQL处理引擎向存储过程引擎发送SQL执行响应消息。
S317、存储过程引擎接收SQL处理引擎发送的SQL执行响应消息。
存储过程引擎在接收到SQL处理引擎返回的执行结果(即SQL执行响应消息)后,从等待点开始继续执行该存储过程,直至遇到下一个SQL指令。当遇到下一个SQL指令时,则返回执行步骤S312-S317,直至该存储过程执行完毕。
在一实施例中,当存储过程引擎需要SQL执行结果时,还可以包括如下步骤S318-S324。
S318、存储过程引擎向SQL处理引擎发送SQL结果集请求消息。
S319、SQL处理引擎接收存储过程引擎发送的SQL结果集请求消息。
S320、SQL处理引擎根据SQL结果集请求消息,向存储过程引擎发送SQL结果集响应消息,SQL结果集响应消息携带SQL的执行结果。
S321、存储过程引擎接收SQL处理引擎发送的SQL结果集响应消息。
S322、存储过程引擎向SQL处理引擎发送SQL结果释放指示消息。
S323、SQL处理引擎接收存储过程引擎发送的SQL结果释放指示消息。
S324、SQL处理引擎根据SQL结果释放指示消息,释放SQL结果集。
S325、存储过程引擎向SQL处理引擎发送存储过程执行响应消息。
当存储过程引擎执行完整个存储过程后,存储过程引擎向SQL处理引擎发送存储过程执行响应消息。存储过程执行响应消息包括出参信息。
S326、SQL处理引擎接收存储过程引擎发送的存储过程执行响应消息。
在一实施例中,当SQL处理引擎接收到存储过程引擎发送的存储过程执行响应消息后,SQL处理引擎将最终的存储过程执行结果反馈给用户。
如此,能够实现分布式存储过程的存储过程引擎和SQL处理引擎解耦。通过SQL处理引擎来执行存储过程引擎动态生成的每条SQL语句,来实现整个存储过程的分布式执行。
图5为一实施例提供的另一种存储过程的运行方法的交互示意图,与图4所示的存储过程的运行方法不同的是,图5所示的SQL处理引擎在执行SQL执行请求消息时出错,SQL处理引擎可以向存储过程引擎发送错误提示消息,而不是直接给用户提示出现错误。存储过程是否能继续执行,需要由存储过程引擎中的处理过程来决定,因为存储过程的定义中可能有错误处理的定义。
图6为一实施例提供的又一种存储过程的运行方法的交互示意图,与图4所示的存储过程的运行方法不同的是,图6所示的存储过程引擎在执行存储过程时出错,存储过程引擎可以将错误信息写入存储过程执行响应消息中。
如此,可以使SQL处理引擎和存储过程引擎相互隔离,当其中一个发生故障时,不会使另一个也发生故障,也不会影响SQL处理引擎处理用户的其它业务,保证了SQL执行引擎的稳定性。
图7为一实施例提供的一种存储过程的运行装置的结构示意图,该存储过程的运行装置可以配置于SQL处理引擎中,如图7所示,包括发送模块10,处理模块11和接收模块12。
发送模块10,设置为向存储过程引擎发送存储过程执行请求消息;
处理模块11,设置为多次执行存储过程引擎发送的SQL执行请求消息;
接收模块12,设置为接收存储过程引擎发送的存储过程执行响应消息。
本实施例提供的存储过程的运行装置为实现上述实施例的存储过程的运行方法,本实施例提供的存储过程的运行装置实现原理和技术效果类似,此处不再赘述。
在一实施例中,发送模块10、处理模块11和接收模块12是设置为执行下述步骤a)-步骤c),直至存储过程引擎不再发送SQL执行请求消息,步骤a)-步骤c)包括:
步骤a)接收模块12接收存储过程引擎发送的SQL执行请求消息;
步骤b)处理模块11处理SQL执行请求消息;
步骤c)发送模块10向存储过程引擎发送SQL执行响应消息。
在一实施例中,接收模块12,还设置为接收存储过程引擎发送的SQL结果集请求消息;
发送模块10,还设置为根据SQL结果集请求消息,向存储过程引擎发送SQL结果集响应消息,SQL结果集响应消息携带SQL的执行结果。
在一实施例中,接收模块12,还设置为接收存储过程引擎发送的SQL结果释放指示消息;
处理模块11,还设置为根据SQL结果释放指示消息,释放SQL结果集。
在一实施例中,发送模块10,还设置为若处理模块11在执行存储过程引擎发送的SQL执行请求消息时出错,则向存储过程引擎发送错误提示消息。
在一实施例中,接收模块12,还设置为在发送模块10向存储过程引擎发送存储过程执行请求消息前,获取存储过程执行请求消息。
图8为一实施例提供的另一种存储过程的运行装置的结构示意图,该存储过程的运行装置可以配置于存储过程引擎中,如图8所示,包括接收模块20,处理模块21和发送模块22。
接收模块20,设置为接收结构化查询语言SQL处理引擎发送的存储过程执行请求消息。
处理模块21,设置为多次构造SQL执行请求消息。
发送模块22,设置为向SQL处理引擎发送SQL执行请求消息;以及向SQL处理引擎发送存储过程执行响应消息。
本实施例提供的存储过程的运行装置为实现上述实施例的存储过程的运行方法,本实施例提供的存储过程的运行装置实现原理和技术效果类似,此处不再赘述。
在一实施例中,接收模块20,处理模块21和发送模块22是设置为执行下述步骤a)-步骤c),直至处理模块21不再构造SQL执行请求消息,步骤a)-步骤c)包括:
步骤a)处理模块21根据存储过程执行请求消息,构造SQL执行请求消息;
步骤b)发送模块22向SQL处理引擎发送SQL执行请求消息;
步骤c)接收模块20接收SQL处理引擎发送的SQL执行响应消息。
在一实施例中,发送模块22,还设置为向SQL处理引擎发送SQL结果集请求消息;
接收模块20,还设置为接收SQL处理引擎发送的SQL结果集响应消息,SQL结果集响应消息携带SQL的执行结果。
在一实施例中,发送模块22,还设置为向SQL处理引擎发送SQL结果释放指示消息。
在一实施例中,处理模块21,还设置为若处理模块21在执行存储过程时出错,则将错误信息写入存储过程执行响应消息中。
本申请实施例提供一种SQL处理引擎,包括:处理器,处理器用于在执行计算机程序时实现上述任一实施例的方法。图9为一实施例提供的一种SQL处理引擎的结构示意图,如图9所示,该SQL处理引擎包括处理器30、存储器31和通信接口32;SQL处理引擎中处理器30的数量可以是一个或多个,图9中以一个处理器30为例;SQL处理引擎中的处理器30、存储器31、通信接口32可以通过总线或其他方式连接,图9中以通过总线连接为例。总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器31作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器30通过运行存储在存储器31中的软件程序、指令以及模块,从而执行SQL处理引擎的至少一种功能应用以及数据处理,即实现上述的方法。
存储器31可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据SQL处理引擎的使用所创建的数据等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器31可包括相对于处理器30远程设置的存储器,这些远程存储器可以通过网络连接至SQL处理引擎。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信接口32可设置为数据的接收与发送。
本申请实施例提供一种存储过程引擎,包括:处理器,处理器用于在执行计算机程序时实现上述任一实施例的方法。图10为一实施例提供的一种存储过程引擎的结构示意图,如图10所示,该存储过程引擎包括处理器40、存储器41和通信接口42;存储过程引擎中处理器40的数量可以是一个或多个,图10中以一个处理器40为例;存储过程引擎中的处理器40、存储器41、通信接口42可以通过总线或其他方式连接,图10中以通过总线连接为例。总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器41作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行存储过程引擎的至少一种功能应用以及数据处理,即实现上述的方法。
存储器41可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据存储过程引擎的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至存储过程引擎。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信接口42可设置为数据的接收与发送。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如本申请任意实施例所提供的方法。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质包括(非穷举的列表):具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(electrically erasable,programmable Read-Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,数据信号中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或多种程序设计语言组合来编写用于执行本公开操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++、Ruby、Go,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(Local Area Network,LAN)或广域网(Wide Area Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域内的技术人员应明白,术语用户终端涵盖任何适合类型的无线用户设备,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(ROM)、随机访问存储器(RAM)、光存储器装置和***(数码多功能光碟DVD或CD光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件((Field-Programmable Gate Array,FGPA)以及基于多核处理器架构的处理器。
Claims (15)
1.一种存储过程的运行方法,其特征在于,包括:
结构化查询语言SQL处理引擎向存储过程引擎发送存储过程执行请求消息;
所述SQL处理引擎多次执行所述存储过程引擎发送的SQL执行请求消息;
所述SQL处理引擎接收所述存储过程引擎发送的存储过程执行响应消息。
2.根据权利要求1所述的方法,其特征在于,所述SQL处理引擎多次执行所述存储过程引擎发送的SQL执行请求消息,包括:
步骤a)所述SQL处理引擎接收所述存储过程引擎发送的SQL执行请求消息;
步骤b)所述SQL处理引擎处理所述SQL执行请求消息;
步骤c)所述SQL处理引擎向所述存储过程引擎发送SQL执行响应消息;
所述SQL处理引擎返回执行步骤a),直至所述存储过程引擎不再发送SQL执行请求消息。
3.根据权利要求2所述的方法,其特征在于,在所述SQL处理引擎返回执行步骤a)前,还包括:
步骤d)所述SQL处理引擎接收所述存储过程引擎发送的SQL结果集请求消息;
步骤e)所述SQL处理引擎根据所述SQL结果集请求消息,向所述存储过程引擎发送SQL结果集响应消息,所述SQL结果集响应消息携带SQL的执行结果。
4.根据权利要求3所述的方法,其特征在于,在步骤e)后,还包括:
步骤f)所述SQL处理引擎接收所述存储过程引擎发送的SQL结果释放指示消息;
步骤g)所述SQL处理引擎根据所述SQL结果释放指示消息,释放SQL结果集。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述SQL处理引擎在执行所述存储过程引擎发送的SQL执行请求消息时出错,则所述SQL处理引擎向所述存储过程引擎发送错误提示消息。
6.根据权利要求1所述的方法,其特征在于,在SQL处理引擎向存储过程引擎发送存储过程执行请求消息前,还包括:
所述SQL处理引擎获取所述存储过程执行请求消息。
7.一种存储过程的运行方法,其特征在于,包括:
存储过程引擎接收结构化查询语言SQL处理引擎发送的存储过程执行请求消息;
所述存储过程引擎多次构造并向所述SQL处理引擎发送SQL执行请求消息;
所述存储过程引擎向所述SQL处理引擎发送存储过程执行响应消息。
8.根据权利要求7所述的方法,其特征在于,所述存储过程引擎多次构造并向所述SQL处理引擎发送SQL执行请求消息,包括:
步骤a)所述存储过程引擎根据所述存储过程执行请求消息,构造SQL执行请求消息;
步骤b)所述存储过程引擎向所述SQL处理引擎发送所述SQL执行请求消息;
步骤c)所述存储过程引擎接收所述SQL处理引擎发送的SQL执行响应消息;
所述存储过程引擎返回执行步骤a),直至所述存储过程引擎不再构造SQL执行请求消息。
9.根据权利要求8所述的方法,其特征在于,在所述存储过程引擎返回执行步骤a)前,还包括:
步骤d)所述存储过程引擎向所述SQL处理引擎发送SQL结果集请求消息;
步骤e)所述存储过程引擎接收所述SQL处理引擎发送的SQL结果集响应消息,所述SQL结果集响应消息携带SQL的执行结果。
10.根据权利要求9所述的方法,其特征在于,在步骤e)后,还包括:
步骤f)所述存储过程引擎向所述SQL处理引擎发送SQL结果释放指示消息。
11.根据权利要求7所述的方法,其特征在于,还包括:
若所述存储过程引擎在执行存储过程时出错,则所述存储过程引擎将错误信息写入所述存储过程执行响应消息中。
12.一种SQL处理引擎,其特征在于,包括:处理器,所述处理器用于在执行计算机程序时实现如权利要求1-6中任一所述的存储过程的运行方法。
13.一种存储过程引擎,其特征在于,包括:处理器,所述处理器用于在执行计算机程序时实现如权利要求7-11中任一所述的存储过程的运行方法。
14.一种数据库***,其特征在于,所述数据库***包括:如权利要求13所述的存储过程引擎和如权利要求12所述的结构化查询语言SQL执行引擎。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-11中任一所述的存储过程的运行方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025993.7A CN112711602B (zh) | 2019-10-25 | 2019-10-25 | 一种存储过程的运行方法、装置,数据库***及存储介质 |
JP2022521107A JP7427775B2 (ja) | 2019-10-25 | 2020-10-22 | ストアドプロシージャの実行方法、装置、データベースシステム及び記憶媒体 |
PCT/CN2020/122640 WO2021078176A1 (zh) | 2019-10-25 | 2020-10-22 | 存储过程的运行方法、装置、数据库***及存储介质 |
EP20878988.3A EP4044043A4 (en) | 2019-10-25 | 2020-10-22 | STORAGE PROCESS EXECUTION METHOD AND APPARATUS, DATABASE SYSTEM AND STORAGE MEDIUM |
US17/765,947 US20220374423A1 (en) | 2019-10-25 | 2020-10-22 | Running method and device for stored procedure, database system and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025993.7A CN112711602B (zh) | 2019-10-25 | 2019-10-25 | 一种存储过程的运行方法、装置,数据库***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112711602A true CN112711602A (zh) | 2021-04-27 |
CN112711602B CN112711602B (zh) | 2023-04-28 |
Family
ID=75540980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911025993.7A Active CN112711602B (zh) | 2019-10-25 | 2019-10-25 | 一种存储过程的运行方法、装置,数据库***及存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220374423A1 (zh) |
EP (1) | EP4044043A4 (zh) |
JP (1) | JP7427775B2 (zh) |
CN (1) | CN112711602B (zh) |
WO (1) | WO2021078176A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7392040B1 (ja) | 2022-05-30 | 2023-12-05 | 三菱電機Itソリューションズ株式会社 | 中継装置、中継方法、中継プログラム及びデータベースシステム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002032247A (ja) * | 2000-05-11 | 2002-01-31 | Keiichi Kogure | 処理設定テーブルにより入出力装置とデータベースのデータ処理を一元的に制御する方法ならび装置 |
US20130311830A1 (en) * | 2011-02-18 | 2013-11-21 | Yong-Dong Wei | Generating test data |
CN107798025A (zh) * | 2016-09-05 | 2018-03-13 | 华为技术有限公司 | 存储过程的运行、编译方法、装置和数据库*** |
CN110121704A (zh) * | 2016-12-30 | 2019-08-13 | 华为技术有限公司 | 一种用于存储过程的执行方法、设备以及*** |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07244601A (ja) * | 1994-03-04 | 1995-09-19 | Nippon Telegr & Teleph Corp <Ntt> | 関係データベースのアクセス方法および装置 |
JP3808941B2 (ja) * | 1996-07-22 | 2006-08-16 | 株式会社日立製作所 | 並列データベースシステム通信回数削減方法 |
JP3742177B2 (ja) * | 1997-02-26 | 2006-02-01 | 株式会社日立製作所 | 並列データベースシステムルーチン実行方法 |
JP2004062566A (ja) * | 2002-07-30 | 2004-02-26 | Jmnet Inc | データベースシステム及びそれを構成するマスターノード装置及びプログラム |
AU2003273333A1 (en) * | 2002-09-18 | 2004-04-08 | Netezza Corporation | Field oriented pipeline architecture for a programmable data streaming processor |
JP2004287926A (ja) * | 2003-03-24 | 2004-10-14 | Ricoh Co Ltd | データベース検索方法、データベース管理サーバ装置、及び汎用ストアドプロシージャ |
US7266561B2 (en) * | 2004-03-18 | 2007-09-04 | International Business Machines Corporation | Method and apparatus for splitting and merging request and response data at runtime |
US7225202B2 (en) * | 2004-03-18 | 2007-05-29 | International Business Machines Corporation | Method and apparatus for generating query and response statements at runtime from generic requests |
US7310637B2 (en) * | 2004-05-05 | 2007-12-18 | International Business Machines Corporation | Dynamic database access via standard query language and abstraction technology |
US7908286B2 (en) * | 2004-12-08 | 2011-03-15 | Oracle International Corporation | Techniques for providing XQuery access using web services |
US8056141B2 (en) * | 2006-09-13 | 2011-11-08 | Imperva, Inc. | Method for monitoring stored procedures |
US8260761B2 (en) * | 2006-10-20 | 2012-09-04 | Ianywhere Solutions, Inc. | Detecting performance degrading design and algorithm issues in database applications |
JP2010097285A (ja) * | 2008-10-14 | 2010-04-30 | Fujitsu Ltd | システム分析支援プログラム、システム分析支援装置、およびシステム分析支援方法 |
US20140095508A1 (en) * | 2012-10-01 | 2014-04-03 | International Business Machines | Efficient selection of queries matching a record using a cache |
CN103064875B (zh) * | 2012-10-30 | 2017-06-16 | 中国标准化研究院 | 一种服务化空间数据分布式查询方法 |
CN103092970A (zh) * | 2013-01-24 | 2013-05-08 | 华为技术有限公司 | 一种数据库操作方法及设备 |
US9128990B2 (en) * | 2013-03-15 | 2015-09-08 | Microsoft Technology Licensing, Llc | Executing stored procedures at parallel databases |
US10019297B2 (en) * | 2013-04-03 | 2018-07-10 | Salesforce.Com, Inc. | Systems and methods for implementing bulk handling in asynchronous processing |
US9823995B2 (en) * | 2014-08-28 | 2017-11-21 | Sap Se | Structured query language debugger |
GB201517416D0 (en) * | 2015-10-02 | 2015-11-18 | Ibm | Task-execution in a DBMS using stored procedures |
US10685019B2 (en) * | 2017-04-14 | 2020-06-16 | Salesforce.Com, Inc. | Secure query interface |
CN108874837B (zh) * | 2017-05-16 | 2021-09-03 | 北京京东尚科信息技术有限公司 | 数据库分库方法、装置、中间件及存储介质和电子设备 |
KR102511927B1 (ko) * | 2018-01-18 | 2023-03-21 | 한국전자통신연구원 | Jit 컴파일 기반 데이터베이스 시스템, 이의 질의 처리 방법 및 이의 저장 프로시저 최적화 방법 |
-
2019
- 2019-10-25 CN CN201911025993.7A patent/CN112711602B/zh active Active
-
2020
- 2020-10-22 EP EP20878988.3A patent/EP4044043A4/en active Pending
- 2020-10-22 WO PCT/CN2020/122640 patent/WO2021078176A1/zh unknown
- 2020-10-22 JP JP2022521107A patent/JP7427775B2/ja active Active
- 2020-10-22 US US17/765,947 patent/US20220374423A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002032247A (ja) * | 2000-05-11 | 2002-01-31 | Keiichi Kogure | 処理設定テーブルにより入出力装置とデータベースのデータ処理を一元的に制御する方法ならび装置 |
US20130311830A1 (en) * | 2011-02-18 | 2013-11-21 | Yong-Dong Wei | Generating test data |
CN107798025A (zh) * | 2016-09-05 | 2018-03-13 | 华为技术有限公司 | 存储过程的运行、编译方法、装置和数据库*** |
CN110121704A (zh) * | 2016-12-30 | 2019-08-13 | 华为技术有限公司 | 一种用于存储过程的执行方法、设备以及*** |
US20190324952A1 (en) * | 2016-12-30 | 2019-10-24 | Huawei Technologies Co., Ltd. | Stored-Procedure Execution Method and Device, and System |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7392040B1 (ja) | 2022-05-30 | 2023-12-05 | 三菱電機Itソリューションズ株式会社 | 中継装置、中継方法、中継プログラム及びデータベースシステム |
Also Published As
Publication number | Publication date |
---|---|
WO2021078176A1 (zh) | 2021-04-29 |
US20220374423A1 (en) | 2022-11-24 |
EP4044043A1 (en) | 2022-08-17 |
CN112711602B (zh) | 2023-04-28 |
JP2022551454A (ja) | 2022-12-09 |
EP4044043A4 (en) | 2023-11-15 |
JP7427775B2 (ja) | 2024-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032706B (zh) | 智能合约执行方法、装置、设备和存储介质 | |
US11050814B2 (en) | Method, device and vehicle for message deduplication | |
CN110990081A (zh) | 微服务注册、发现方法及装置、存储介质及电子设备 | |
CN109669787B (zh) | 数据传输方法及装置、存储介质、电子设备 | |
CN114528044B (zh) | 一种接口调用方法、装置、设备及介质 | |
CN113986402A (zh) | 函数调用方法、装置、电子设备及存储介质 | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
CN112579307A (zh) | 一种物理锁资源的分配检测方法、装置及电子设备 | |
CN110221840B (zh) | 应用程序的功能实现方法及装置、设备及存储介质 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN109873861B (zh) | 跨区块链节点的交互方法及装置、存储介质及电子设备 | |
CN112711602B (zh) | 一种存储过程的运行方法、装置,数据库***及存储介质 | |
CN113760242A (zh) | 一种数据处理方法、装置、服务器和介质 | |
CN110096543B (zh) | 应用程序的数据操作方法、装置、服务器和介质 | |
CN112948306B (zh) | 扩展***接口的方法和装置 | |
CN114036218A (zh) | 一种数据模型切换方法、装置、服务器和存储介质 | |
CN111949862B (zh) | 一种管理业务任务流程的方法、装置和电子设备 | |
CN114510334A (zh) | 类实例的调用方法、装置、电子设备及自动驾驶车辆 | |
CN111080250A (zh) | 流程回退补偿方法、装置、存储介质及电子设备 | |
CN112486421B (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN118069223B (zh) | 一种车辆控制方法、装置、电子设备及存储介质 | |
CN111382057A (zh) | 测试用例生成方法,测试方法及装置,服务器及存储介质 | |
CN113761548B (zh) | 用于Shuffle过程的数据传输方法和装置 | |
CN117170822B (zh) | 使用分布式网络中间件的***模型和代码联合仿真*** | |
CN110191141B (zh) | 服务调用信息处理方法、装置及计算机*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220216 Address after: 100176 floor 18, building 8, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone) Applicant after: Jinzhuan Xinke Co.,Ltd. Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen Applicant before: ZTE Corp. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |