CN108780452B - 一种存储过程处理方法及装置 - Google Patents
一种存储过程处理方法及装置 Download PDFInfo
- Publication number
- CN108780452B CN108780452B CN201680083345.5A CN201680083345A CN108780452B CN 108780452 B CN108780452 B CN 108780452B CN 201680083345 A CN201680083345 A CN 201680083345A CN 108780452 B CN108780452 B CN 108780452B
- Authority
- CN
- China
- Prior art keywords
- predicate
- predicates
- mapping
- sql
- relation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 208
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000005192 partition Methods 0.000 claims abstract description 218
- 238000004458 analytical method Methods 0.000 claims abstract description 191
- 238000013507 mapping Methods 0.000 claims description 310
- 230000015654 memory Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 24
- 238000009795 derivation Methods 0.000 claims description 18
- 238000005457 optimization Methods 0.000 claims description 8
- 238000009499 grossing Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims 3
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 101100328518 Caenorhabditis elegans cnt-1 gene Proteins 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储过程处理方法及装置,其中,该方法包括:将待处理存储过程中的SQL语句解析为SQL基本块,其次,基于SQL基本块中的谓词生成谓词关系解析文件,并解析谓词关系解析文件中的谓词,衍生出谓词关系解析文件中的数据库表对应的衍生谓词,最后,在判断出数据库表是协同分区的,且谓词关系解析文件中的每一个分区表所对应的谓词均包括预设参数赋值类型的谓词的情况下,在数据库系统中的指定分区上运行所述待处理存储过程。通过上述方式,数据库系统能够自动识别出当前待处理存储过程的单分区类型,并在指定分区上运行该待处理存储过程,有利于提升数据库系统的整体性能和可用性。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种存储过程处理方法及装置
背景技术
分布式数据库系统是指用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库系统。每个被连接起来的数据库单元通常被称为节点,也称为分区。分布式数据库系统中的表通常被分为分区表和复制表,分区表是指按照特定列进行水平切分并存储在分区上的表,复制表是指在每个分区中都存在完整数据的表。元组是数据库表中的一行。当分区表集合{R1,R2,...,Rn}中的分区表包含相同分区列值的元组都被分配到同一个分区时,该分区表集合称为协同分区。
存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的结构化查询语言SQL(Structured Query Language)集合,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。SQL是关系数据库管理系统的标准语言,给定一个SQL查询语句,该查询语句从数据库中获取一组特定行,并指定要作为结果集返回的特定行的限定条件。这种限定条件在数据库系统中被称为谓词。谓词通常出现在SQL语句中的WHERE子句和HAVING子句中。举例来说,对于SQL语句{select*from A,B where A.a=1 and A.a<B.b},A.a=1 andA.a<B.b指定了该查询语句的结果集中的行需要满足的条件,所以是该查询语句的谓词。
分布式数据库系统中的存储过程具体可以分为单分区存储过程和多分区存储过程。单分区存储过程是指只需要在一个分区上运行的存储过程。多分区存储过程是指需要在1个以上分区上运行的存储过程。多分区存储过程会下发至相对应的分区上运行并由一个节点负责协调。举例来说,如图1所示,三个协同分区的分区表集合{A,B,C},它们的分区列分别是a1,b1和c1并且它们都被水平切分成三块并且存储在节点X,Y和Z中。包含SQL语句{select*from A where A.a1=1}的存储过程是单分区的,因为表A是在列a1上进行分区的,所以满足谓词A.a1=1的元组肯定存在一个分区上,所以它只需要在一个分区上运行。包含SQL语句{select*from A,B where A.a=1 and A.a<B.b}的存储过程是多分区的,因为满足谓词A.a=1 and A.a<B.b的元组分布在多个分区上,所以它需要在多个分区上运行。
区分单分区存储过程和多分区存储过程对分布式数据库系统的性能有着很大的影响。如果一个单分区存储过程被当成多分区存储过程来运行,不仅影响了存储过程的性能,而且浪费了系统资源。而如果一个多分区存储过程被当成单分区存储过程来运行,则会导致存储过程错误。因此,如何自动的区分单分区存储过程和多分区存储过程在分布式数据库系统中尤为重要。
发明内容
本申请提供一种存储过程处理方法及装置,以期提出一种自动区分单分区存储过程的方法,有利于提升数据库系统的整体性能和可用性。
第一方面,本申请的实施例提供一种存储过程处理方法,由数据库系统执行,所述数据库系统运行在计算机设备上,包括以下处理过程:
首先,数据库系统解析待处理存储过程中的X个SQL语句为Y个SQL基本块,其中,所述SQL基本块为不包含子查询和视图的SQL语句,所述Y个SQL基本块包括P个谓词和N个数据库表,X为正整数,Y为大于或等于X的整数,P、N为正整数;
其次,若所述N个数据库表至少包括1个分区表,则数据库系统基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,其中,所述谓词关系解析文件表明所述P个谓词与所述N个数据库表和与所述Y个基本块之间的关系,所述衍生谓词为根据所述P个谓词衍生的等值谓词;所述等值谓词是指形如S.s=VAR(S为数据库表,s为数据列,VAR为存储过程参数),或S.s=X.x(X为数据库表,x为数据列)等类型的谓词。
接着,若所述N个数据库表中的分区表为协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的每一个分区表所对应的谓词包括预设参数赋值类型的谓词,则数据库系统在数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。其中,所述每一个分区表所对应的谓词包括所述P个谓词中的谓词和/或所述衍生谓词中的谓词,所述指定分区是指预设的用于运行单分区类型的待处理存储过程所述数据库系统中的单个分区,或者,是指所述单分区类型的待处理存储过程中的参数所指定的用于运行所述待处理存储过程的所述数据库系统中的单个分区。
可见,本发明实施例的数据库系统能够自动识别出当前待处理存储过程的单分区类型,并在指定分区上运行该待处理存储过程,有利于提升数据库系统的整体性能和可用性。
结合第一方面,在一些可能的实现方式中,所述方法还包括:
若所述N个数据库表中不包括分区表,则数据库系统在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表不是协同分区,则数据库系统在所述数据库系统中预设的多个分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表是协同分区,且数据库系统基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的至少一个分区表所对应的谓词不包括预设参数赋值类型的谓词,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程。
可见,本发明实施例的数据库系统能够自动区分出单分区存储过程和多分区存储过程,并在对应的单个指定分区或多个预设分区上运行类型的待处理存储过程,从而避免误识别单分区或多分区存储过程而导致的存储过程错误,有利于提升数据库系统的整体性能和可用性。
结合第一方面,在一些可能的实现方式中,所述谓词关系解析文件至少包括所述P个谓词、所述N个数据库表,以及如下映射关系集合:
由所述Y个SQL基本块中针对多个数据库表之间的连接关系进行限定的谓词与对应的数据库表之间的第一映射关系所组成的第一映射关系集合;
由所述Y个SQL基本块中针对单个数据库表进行限定的谓词与对应的数据库表之间的第二映射关系所组成的第二映射关系集合;
由所述P个谓词中用于描述SQL基本块之间的连接关系的谓词与对应的SQL基本块之间的第三映射关系所组成的第三映射关系集合。
结合第一方面,在一些可能的实现方式中,所述数据库系统解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体方式为:
数据库系统基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
结合第一方面,在一些可能的实现方式中,数据库系统基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词具体实现方式包括如下循环迭代步骤:
若数据库系统基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生出与所述SQL基本块中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生与所述谓词关系解析文件中的数据库表对应的谓词;
若数据库系统基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生与所述SQL基本块中的数据库表对应的谓词;
若数据库系统基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词,且基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第二映射关系集合,未衍生出任何谓词,则确定所述谓词关系解析文件中除所述P个谓词之外的谓词为与所述谓词关系解析文件中的数据库表对应的衍生谓词。
可见,本发明实施例提供的谓词衍生过程是一个迭代式的过程,终止条件是相邻两次迭代不再有新的衍生谓词产生,如此,可以全面准确的衍生出与所述谓词关系解析文件中的数据库表对应的所有衍生谓词,避免因遗漏衍生谓词而出现的存储过程分区类型误判情况,有利于提升存储过程分区类型识别的准确度。
结合第一方面,在一些可能的实现方式中,所述数据库系统解析待处理存储过程中的X个SQL语句为Y个SQL基本块的具体过程包括以下步骤:
首先,数据库系统基于预存的SQL重写策略处理所述待处理存储过程中的X个SQL语句为具有优化空间的X个SQL语句;
其次,数据库系统解析所述具有优化空间的X个SQL语句为所述Y个SQL基本块;
其中,所述SQL重写策略至少包括以下任意一种:
视图扩展view expansion、子查询抚平subquery flattening、常量表达式计算constant arithmetic evaluation、逻辑谓词重写logical rewriting of predicates以及语义优化semantic optimization。
如此,数据库系统针对原始SQL语句进行视图扩展和子查询抚平等,可以将原始SQL语句中的视图和子查询等进行必要的转化,以生成更加具有优化空间的SQL语句,再将优化后的SQL语句解析成SQL基本块。
第二方面,本申请的实施例提供一种存储过程处理装置,所述装置包括功能单元,所述功能单元用于执行本发明实施例第一方面任一方法中所描述的部分或全部步骤。
第三方面,本申请的实施例提供一种计算机设备,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面任一方法中所描述的部分或全部步骤。
第四方面,本申请的实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有用于计算机设备执行的程序代码,该程序代码具体包括执行指令,所述执行指令用于执行本发明实施例第一方面任一方法中所描述的部分或全部步骤。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域低精度技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术方案中公开的一种协同分区的多个分区表的存储示例;
图2是本发明实施例公开的一种分布式数据库系统的典型应用场景图;
图3是本发明实施例公开的一种用于支持图2中所述分布式管理系统的计算机设备的结构示意图;
图4是本发明实施例公开的一种存储过程处理方法的流程示意图;
图4.1是本发明实施例公开的一种谓词关系解析示例图;
图4.2是本发明实施例公开的一种基于谓词关系解析图的谓词衍生过程示意图;
图5是本发明实施例公开的一种存储过程处理装置的功能单元组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域低精度技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为更好的理解本发明技术方案,下面先对本发明实施例提供的存储过程处理方法所适用的应用场景进行简要描述。如图2所示,图2是本发明实施例提供的一种分布式数据库系统的典型应用场景图。所述分布式数据库系统包括分布式管理系统和与所述分布式管理系统通信连接的一个或多个服务器(也称为数据库单元或节点),所述分布式管理系统包括元数据管理、存储过程处理器以及其他管理组件,其中,所述一个或多个服务器可以是物理上分散的,如图2中所示的3个服务器,每个服务器分为2个分区。当客户端向该分布式数据库系统发送存储过程请求时,分布式数据库系统中的存储过程处理器解析该存储过程是否是单分区存储过程,如果是单分区存储过程,则向指定分区发送待处理存储过程,并返回结果给存储过程处理器,进而返回结果给客户端;如果是多分区存储过程,则发送待处理存储过程至预设的多个分区以执行该待处理存储过程,并返回结果给存储过程处理器,进而返回结果给客户端。
进一步的,请参阅图3,图3是本发明实施例提供的一种用于支持图2中所述分布式管理系统的计算机设备的结构示意图。所述计算机设备包括至少一个处理器101,通信总线102,存储器103以及至少一个通信接口104。其中,处理器101可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。通信总线102可包括一通路,在上述组件之间传送信息。通信接口104可以是使用收发器一类的装置,用于与图2中所示的分布式服务器或客户端或通信网络等进行通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。存储器103可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。所述计算机设备还可以包括输出设备105和输入设备106。输出设备105和处理器101通信,可以以多种方式来显示信息,输入设备106和处理器101通信,可以以多种方式接收用户的输入。具体实现中,上述计算机设备例如可以是台式机、便携式电脑、网络服务器、无线终端设备、通信设备、嵌入式设备等类似结构的设备,本发明实施例不限定计算机设备的类型。
上述计算机设备中的处理器101能够耦合所述至少一个存储器103,所述存储器103中预存有程序代码,所述程序代码具体包括解析模块、衍生模块、第一运行模块,所述存储器103还进一步存储有内核模块,所述内核模块包括操作系统(如WINDOWSTM,ANDROIDTM,IOSTM等)。
所述计算机设备的处理器101调用所述程序代码以执行本发明实施例所公开的故障诊断模型训练方法,具体包括以下步骤:
所述计算机设备的处理器101运行存储器103中的解析模块,以解析待处理存储过程中的X个SQL语句为Y个SQL基本块,所述SQL基本块为不包含子查询和视图的SQL语句,所述Y个SQL基本块包括P个谓词和N个数据库表,X为正整数,Y为大于或等于X的整数,P、N为正整数;
若所述N个数据库表至少包括1个分区表,则所述计算机设备的处理器101运行存储器103中的衍生模块,以基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,所述谓词关系解析文件表明所述P个谓词与所述N个数据库表和与所述Y个基本块之间的关系,所述衍生谓词为根据所述P个谓词衍生的等值谓词;
若所述N个数据库表中的分区表为协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的每一个分区表所对应的谓词包括预设参数赋值类型的谓词,则所述计算机设备的处理器101运行存储器103中的运行模块,以在数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。其中,所述每一个分区表所对应的谓词包括所述P个谓词中的谓词和/或所述衍生谓词中的谓词。
可以看出,本发明实施例提供的计算机设备能够自动识别出当前待处理存储过程的单分区类型,并在指定分区上运行该待处理存储过程,有利于提升数据库系统的整体性能和可用性。
可选的,所述处理器101还用于:
若所述N个数据库表中不包括分区表,则在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表不是协同分区,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表是协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的至少一个分区表所对应的谓词不包括预设参数赋值类型的谓词,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程。
可见,本发明实施例的数据库系统能够自动区分出单分区存储过程和多分区存储过程,并在对应的单个指定分区或多个预设分区上运行类型的待处理存储过程,从而避免误识别单分区或多分区存储过程而导致的存储过程错误,有利于提升数据库系统的整体性能和可用性。
可选的,所述谓词关系解析文件至少包括所述P个谓词、所述N个数据库表,以及如下映射关系集合:
由所述Y个SQL基本块中针对多个数据库表之间的连接关系进行限定的谓词与对应的数据库表之间的第一映射关系所组成的第一映射关系集合;
由所述Y个SQL基本块中针对单个数据库表进行限定的谓词与对应的数据库表之间的第二映射关系所组成的第二映射关系集合;
由所述P个谓词中用于描述SQL基本块之间的连接关系的谓词与对应的SQL基本块之间的第三映射关系所组成的第三映射关系集合。
可选的,所述处理器101解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
可选的,所述处理器101基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生出与所述SQL基本块中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生与所述谓词关系解析文件中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生与所述SQL基本块中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词,且基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第二映射关系集合,未衍生出任何谓词,则确定所述谓词关系解析文件中除所述P个谓词之外的谓词为与所述谓词关系解析文件中的数据库表对应的衍生谓词。
可见,本发明实施例提供的谓词衍生过程是一个迭代式的过程,终止条件是相邻两次迭代不再有新的衍生谓词产生,如此,可以全面准确的衍生出与所述谓词关系解析文件中的数据库表对应的所有衍生谓词,避免因遗漏衍生谓词而出现的存储过程分区类型误判情况,有利于提升存储过程分区类型识别的准确度。
可选的,所述处理器101解析待处理存储过程中的X个SQL语句为Y个SQL基本块的具体实现方式为:
基于预存的SQL重写策略处理所述待处理存储过程中的X个SQL语句为具有优化空间的X个SQL语句;
解析所述具有优化空间的X个SQL语句为所述Y个SQL基本块;
其中,所述SQL重写策略至少包括以下任意一种:
视图扩展view expansion、子查询抚平subquery flattening、常量表达式计算constant arithmetic evaluation、逻辑谓词重写logical rewriting of predicates以及语义优化semantic optimization。
如此,数据库系统针对原始SQL语句进行视图扩展和子查询抚平等,可以将原始SQL语句中的视图和子查询等进行必要的转化,以生成更加具有优化空间的SQL语句,再将优化后的SQL语句解析成SQL基本块。
与上述技术方案一致的,请参阅图4,图4是本发明实施例公开的一种存储过程处理方法的流程示意图。需要注意的是,虽然本方法实施例能够基于图3所示的计算机设备实现,但上述示例计算机设备不构成对本发明方法实施例公开的存储过程处理方法的唯一限定。
如图4所示,所述存储过程处理方法包括以下步骤:
S401,数据库系统解析获取的待处理存储过程中的X个SQL语句为Y个不包含子查询和视图的SQL基本块,所述SQL基本块为不包含子查询和视图的SQL语句,所述Y个SQL基本块包括P个谓词和N个数据库表,X为正整数,Y为大于或等于X的整数,P、N为正整数;
具体实现中,所述数据库系统解析获取的待处理存储过程中的X个SQL语句为Y个不包含子查询和视图的SQL基本块的具体实现方式为:
所述数据库系统基于预存的SQL重写策略处理获取的所述待处理存储过程中的X个SQL语句为具有优化空间的X个SQL语句;
解析重写后的所述X个SQL语句为所述Y个SQL基本块;
其中,所述SQL基本块为不包含子查询和视图的SQL语句,所述子查询是指出现在一个SQL语句中的SQL语句,即嵌套在一个SQL语句中SQL语句;
所述SQL重写策略至少包括以下任意一种:
视图扩展view expansion、子查询抚平subquery flattening、常量表达式计算constant arithmetic evaluation、逻辑谓词重写logical rewriting of predicates以及语义优化semantic optimization。其中,所述SQL重写策略可以移除原始SQL语句中的所有的逻辑视图,并抚平一部分子查询。
如此,数据库系统针对原始SQL语句进行视图扩展和子查询抚平等,可以将原始SQL语句中的视图和子查询等进行必要的转化,以生成更加具有优化空间的SQL语句,再将优化后的SQL语句解析成SQL基本块。
举例来说,如下表所示,假设表A、表B、表C是分区表且它们是协同分区的,表D是复制表;
表名 | 所有列 | 分区列 |
A | a1,a2,a3,a4 | a1 |
B | b1,b2,b3,b4 | b1 |
C | c1,c2,c3,c4 | c1 |
D | d1,d2,d3,d4 | 复制表 |
假设表1中的数据表对应的待处理存储过程如下所示:
select*
from(select A.a1,B.b1,count(*)as cnt from A,B where A.a1=B.b1 andA.a2<=B.b2 Group by A.a1,B.b1)as E,A,C,D
where E.a1=A.a1 and E.b1=C.c1 and A.a1=var1 and
(A.a2=var2 or C.c1=var3)and E.cnt>
(select count(*)as cnt from B,C where B.b1=C.c1 and B.b1=var1)
待处理存储过程中:var1,var2,var3是存储过程参数。
数据库系统获取上述待处理存储过程,基于预存的SQL重写策略对上述待处理存储过程中的SQL语句进行重写,以得到重写后的SQL语句为:
select*
from(select A.a1,B.b1,count(*)as cnt from A,B where A.a1=B.b1 andA.a2<=B.b2 Group by A.a1,B.b1)as E,A,C,D
where E.a1=A.a1 and E.b1=C.c1 and A.a1=var1 and
(A.a2=var2 or C.c1=var3)and E.cnt>
(select count(*)as cnt from B,C where B.b1=C.c1 and B.b1=var1)
本示例中,因为原始的待处理存储过程不存在优化空间,所以这里的重写后的SQL语句与原始的待处理存储过程是一样的。
接着,数据库系统解析上述重写后的SQL语句,以生成如下3个SQL基本块:
SQL基本块1:(select A.a1,B.bi,count(*)as cnt from A,B where A.a1=B.b1and A.a2<=B.b2 Group by A.a1,B.b1),
其中,所述SQL基本块1包括2个谓词(谓词11:A.a1=B.b1,谓词12:A.a2<=B.b2)、2个数据库表(表A、表B);
SQL基本块2:(select*from E,A,C,D where E.a1=A.a1 and E.b1=C.c1 andA.a1=var1 and(A.a1=var2 or C.c1=var3)and E.cnt>),
其中,所述SQL基本块2包括4个谓词(谓词21:E.a1=A.a1、谓词22:E.b1=C.c1、谓词23:A.a1=var1,谓词24:A.a1=var2 or C.c1=var3、谓词25:E.cnt>cnt1)、3个数据库表(表A、表C、表D),所述cnt1是SQL基本块3的结果列;
SQL基本块3:(select count(*)as cnt1 from B,C where B.b1=C.c1 and B.b1=var1),
其中,所述SQL基本块2包括2个谓词(谓词31:B.b1=C.c1、谓词32:B.b1=var1),2个数据库表(表B、表C);
综上,上述3个SQl基本块包括9个谓词和7个数据库表。
S402,若所述N个数据库表至少包括1个分区表,则所述数据库系统基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,所述谓词关系解析文件表明所述P个谓词与所述N个数据库表和与所述Y个基本块之间的关系,所述衍生谓词为根据所述P个谓词衍生的等值谓词;其中,所述等值谓词是指形如S.s=VAR(S为数据库表,s为数据列,VAR为存储过程参数),或S.s=X.x(X为数据库表,x为数据列)等类型的谓词。
其中,所述谓词关系解析文件至少包括所述P个谓词、所述N个数据库表,以及如下映射关系集合:
由所述Y个SQL基本块中针对多个数据库表之间的连接关系进行限定的谓词与对应的数据库表之间的第一映射关系所组成的第一映射关系集合;
由所述Y个SQL基本块中针对单个数据库表进行限定的谓词与对应的数据库表之间的第二映射关系所组成的第二映射关系集合;
由所述P个谓词中用于描述SQL基本块之间的连接关系的谓词与对应的SQL基本块之间的第三映射关系所组成的第三映射关系集合。
具体实现中,所述数据库系统可以以谓词关系解析图的形式呈现出所述谓词关系解析文件中的第一映射关系、第二映射关系和第三映射关系。
仍以步骤S401中的示例来说,数据库系统在重写并解析SQL语句为3个SQL基本块之后,可以基于所述9个谓词生成谓词关系解析文件;
具体的,生成的谓词关系解析文件中包括以下谓词:
谓词11:A.a1=B.b1,谓词12:A.a2<=B.b2,谓词21:E.a1=A.a1、谓词22:E.b1=C.c1、谓词23:A.a1=var1,谓词24:A.a1=var2 or C.c1=var3、谓词25:E.cnt>cnt1,谓词31:B.b1=C.c1、谓词32:B.b1=var1;
包括以下7个数据库表:
SQL基本块1对应的表A、表B;
SQL基本块2对应的表A、表C、表D;
SQL基本块3对应的表B、表C;
包括以下映射关系集合:
SQL基本块1对应的第一映射关系集合,具体包括以下第一映射关系:
表A、表B与谓词11、谓词12之间的第一映射关系;
SQL基本块2对应的第一映射关系集合,具体包括以下第一映射关系:
表A、表C与谓词24之间的第一映射关系;
SQL基本块3对应的第一映射关系集合,具体包括以下第一映射关系:
表B、表C与谓词31之间的第一映射关系;
SQL基本块1对应的第二映射关系集合,该集合当前为空集;
SQL基本块2对应的第二映射关系集合,具体包括以下第二映射关系:
表A和谓词23之间的第二映射关系;
SQL基本块3对应的第二映射关系集合,具体包括以下第二映射关系:
表B和谓词32之间的第二映射关系;
SQL基本块1、SQL基本块2、SQL基本块3对应的第三映射关系集合,具体包括以下第三映射关系:
SQL基本块1、SQL基本块2和谓词21、谓词22之间的第三映射关系;
SQL基本块2、SQL基本块3和谓词25之间的第三映射关系;
为了更直观的描述出上述谓词关系解析文件中的谓词、数据库表以及谓词和数据库表、SQL基本块之间的映射关系,请参阅图4.1所示的谓词关系解析图,所述谓词关系解析图中,将SQL基本块示意为虚线框、将SQL基本块中的数据库表示意为圆点、将第一映射关系集合对应的谓词添加在对应的数据库表(圆点)之间的连接线上,将第二映射关系集合对应的谓词添加在对应的数据库表(圆点)附近,将第三映射关系集合对应的谓词添加在对应的SQL基本块(虚线框)之间的连接线上。
具体实现中,所述数据库系统在生成谓词关系解析文件,解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
所述数据库系统基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
可以理解的是,上述数据库系统基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式可以是多种多样的,本发明实施例不做唯一限定。
一个实施例中,上述数据库系统基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生出与所述SQL基本块中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生与所述谓词关系解析文件中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生与所述SQL基本块中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词,且基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第二映射关系集合,未衍生出任何谓词,则确定所述谓词关系解析文件中除所述P个谓词之外的谓词为与所述谓词关系解析文件中的数据库表对应的衍生谓词。
举例来说,仍以前述示例的待处理存储过程为例进行说明。所述数据库系统在基于所述9个谓词生成谓词关系解析文件之后,首先基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,分别针对SQL基本块1、SQL基本块2、SQL基本块3中的每一个SQL基本块进行谓词衍生处理,下面进行详细说明:
针对SQL基本块1,基于SQL基本块1对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词;
针对SQL基本块2,基于SQL基本块2对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词;
针对SQL基本块3,基于SQL基本块3对应的第一映射关系集合和第二映射关系集合,衍生出谓词33:C.c1=var1;
所述数据库表将衍生出的谓词33:C.c1=var1添加在所述谓词关系解析文件中,并将SQl基本块3对应的第二映射关系集合更新为包括表C和谓词33:C.c1=var1之间的第二映射关系的集合;
此时谓词关系解析文件中新增的谓词33:C.c1=var1;
SQL基本块3对应的第二映射关系集合,具体包括以下第二映射关系:
表B和谓词32之间的第二映射关系;
表C和谓词33之间的第二映射关系;
接着,所述数据库系统基于每一个SQL基本块对应的第二映射关系集合和3个SQL基本块对应的第三映射关系集合,进行谓词衍生处理,下面进行详细说明:
针对SQL基本块1,基于SQL基本块1对应的第二映射关系集合(未进行更新则用原始映射关系集合)以及第三映射关系集合,衍生出谓词13:A.a1=var1;
针对SQL基本块2,基于SQL基本块2对应的第二映射关系集合以及第三映射关系集合,未衍生出任何谓词;
针对SQL基本块3,基于SQL基本块3对应的更新后的第二映射关系集合以及第三映射关系集合,未衍生出任何谓词;
所述数据库表将衍生出的谓词13:A.a1=var1添加至谓词关系解析文件中,并将SQL基本块1对应的第二映射关系集合更新为包括表A和谓词13之间的第二映射关系的集合;
此时,谓词关系解析文件中新增的谓词13:A.a1=var1;
SQL基本块1对应的第二映射关系集合具体包括以下第二映射关系:
表A和谓词13之间的第二映射关系;
接着,所述数据库系统再次分别针对SQL基本块1、SQL基本块2、SQL基本块3中的每一个SQL基本块进行谓词衍生处理,下面进行详细说明:
针对SQL基本块1,基于SQL基本块1对应的第一映射关系集合和更新后的第二映射关系集合,衍生出谓词14:B.b1=var1;
针对SQL基本块2,基于SQL基本块2对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词;
针对SQl基本块3,基于SQL基本块3对应的第一映射关系集合和更新后的第二映射关系集合,未衍生出任何谓词;
同样的,所述数据库系统在谓词关系解析文件中添加新增的谓词14:B.b1=var1,并将SQL基本块1对应的第二映射关系集合更新为包括表B和新增的谓词14之间的第二映射关系的集合;
此时,所述谓词关系解析文件中新增谓词14:B.b1=var1;
所述SQL基本块1对应的第二映射关系集合具体包括以下第二映射关系:
表A和谓词13之间的第二映射关系;
表B和谓词14之间的第二映射关系;
接着,所述数据库系统再次基于每一个SQL基本块对应的第二映射关系集合和3个SQL基本块对应的第三映射关系集合,进行谓词衍生处理,下面进行详细说明:
针对SQL基本块1,基于SQL基本块1对应的更新后的第二映射关系集合以及第三映射关系集合,未衍生出任何谓词;
针对SQL基本块2,基于SQL基本块2对应的第二映射关系集合以及第三映射关系集合,衍生出谓词26:C.c1=var1;
针对SQL基本块3,基于SQL基本块3对应的更新后的第二映射关系集合以及第三映射关系集合,未衍生出任何谓词;
同样的,所述数据库系统在谓词关系解析文件中添加新增的谓词26:C.c1=var1,并将SQL基本块2对应的第二映射关系集合更新为包括表C和新增的谓词26之间的第二映射关系的集合;
此时,所述谓词关系解析文件中新增谓词26:C.c1=var1;
所述SQL基本块2对应的第二映射关系集合具体包括以下第二映射关系:
表A和谓词23之间的第二映射关系;
表C和谓词26之间的第二映射关系;
接着,所述数据库系统重复执行:基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,分别针对SQL基本块1、SQL基本块2、SQL基本块3中的每一个SQL基本块进行谓词衍生处理的步骤,未衍生出任何谓词,且所述数据库系统重复执行:基于每一个SQL基本块对应的第二映射关系集合和3个SQL基本块对应的第三映射关系集合,进行谓词衍生处理的步骤,也未衍生出任何谓词,则所述数据库系统确定当前谓词关系解析文件中新增的谓词13:A.a1=var1、谓词14:B.b1=var1、谓词26:C.c1=var1、谓词33:C.c1=var1为所述谓词关系解析文件中的数据库表对应的衍生谓词。
S403,若所述N个数据库表中的分区表为协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的每一个分区表所对应的谓词包括预设参数赋值类型的谓词,则所述数据库系统在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。其中,所述每一个分区表所对应的谓词包括所述P个谓词中的谓词和/或所述衍生谓词中的谓词,所述指定分区是指预设的用于运行单分区类型的待处理存储过程所述数据库系统中的单个分区,或者,是指所述单分区类型的待处理存储过程中的参数所指定的用于运行所述待处理存储过程的所述数据库系统中的单个分区。
具体实现中,所述N个数据库中的分区表是否为协同分区的判断过程可以参照背景技术中介绍的协同分区的定义进行判断,此处不再赘述。
若所述N个数据库表中的分区表为协同分区,且所述谓词关系解析文件中的每一个分区表所对应的谓词至少关联一个预设参数赋值类型的谓词,则确定所述待处理存储过程为单分区存储过程,在数据库系统中的指定分区上运行所述待处理存储过程;其中,所述预设参数赋值类型是指形如S.s=var的参数赋值类型,其中,S是分区表,s为分区表S的分区列,var为存储过程参数。
举例来说,仍然以上述示例为例进行说明。假设表A、表B、表C中包含相同分区列值的元组已被分配在同一个数据库系统的分区中,此时确认表A、表B、表C为是协同分区的,进一步的,逐个判断每一个SQL基本块中的分区表对应的谓词中是否包括预设参数赋值类型的谓词;
针对SQL基本块1,包括分区表A和分区表B,针对分区表A,查询到分区表A对应的衍生谓词13:A.a1=var1为预设参数赋值类型谓词,分区表B对应的衍生谓词14:B.b1=var1为预设参数赋值类型谓词;
针对SQL基本块2,包括分区表A、分区表C,查询到分区表A对应的谓词23:A.a1=var1为预设参数赋值类型谓词,查询到分区表C对应的衍生谓词26:C.c1=var1为预设参数赋值类型谓词;
针对SQL基本块3,包括分区表B、分区表C,查询到分区表B对应的谓词32:B.b1=var1为预设参数赋值类型谓词,查询到分区表C对应的衍生谓词33:C.c1=var1为预设参数赋值类型谓词;
故而,所述数据库系统判断出所述谓词关系解析文件中的每一个分区表所对应的谓词均包括预设参数赋值类型的谓词,在数据库系统中的指定分区上运行所述待处理存储过程。
上述针对示例待处理存储过程中的数据库表进行谓词衍生的过程可以以图4.2所示的谓词关系解析图表述,图4.2中,虚线框中的倾斜字符所示谓词为根据第一映射关系集合和第二映射关系集合衍生出的谓词,虚线框中的下划线字符所示谓词为根据第二映射关系集合和第三映射关系集合衍生出的谓词。
可以看出,本发明实施例中,数据库系统首先将待处理存储过程中的SQL语句解析为SQL基本块,其次,基于SQL基本块中的谓词生成谓词关系解析文件,并解析谓词关系解析文件中的谓词,衍生出谓词关系解析文件中的数据库表对应的衍生谓词,最后,在判断出数据库表是协同分区的,且谓词关系解析文件中的每一个分区表所对应的谓词均包括预设参数赋值类型的谓词的情况下,在数据库系统中的指定分区上运行所述待处理存储过程。可见,本发明实施例的数据库系统能够自动识别出当前待处理存储过程的单分区类型,并在指定分区上运行该待处理存储过程,有利于提升数据库系统的整体性能和可用性。
可选的,本发明实施例中,所述数据库系统还可以执行以下操作:
若所述N个数据库表中不包括分区表,则在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表不是协同分区,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表是协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的至少一个分区表所对应的谓词不包括预设参数赋值类型的谓词,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程。
可见,本发明实施例公开的数据库系统能够根据待处理存储过程中的SQL语句,准确识别待处理存储过程的分区类型,并灵活选择不同分区运行所述待处理存储过程,有利于提升数据库系统对存储过程所属分区类型的识别准确率。
上述数据库系统中执行的部分或全部步骤,具体可以由所述计算机设备通过执行上述存储器中的软件模块(程序代码)来实现。例如,所述步骤S401可以由计算机设备执行图3所示的解析模块来实现;所述步骤S402可以由计算机设备执行图3所示的衍生模块来实现;所述步骤S403可以由计算机设备执行图3所示的第一运行模块来实现。
下面为本发明装置实施例,请参阅图5,图5是本发明装置实施例公开的一种存储过程处理装置的功能单元组成框图。如图5所示,所述存储过程处理装置包括解析单元501、衍生单元502以及第一运行单元503,其中:
所述解析单元501,用于解析待处理存储过程中的X个SQL语句为Y个SQL基本块,所述SQL基本块为不包含子查询和视图的SQL语句,所述Y个SQL基本块包括P个谓词和N个数据库表,X为正整数,Y为大于或等于X的整数,P、N为正整数;
所述衍生单元502,用于若所述N个数据库表至少包括1个分区表,则基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,所述谓词关系解析文件表明所述P个谓词与所述N个数据库表和与所述Y个基本块之间的关系,所述衍生谓词为根据所述P个谓词衍生的等值谓词;
所述第一运行单元503,用于若所述N个数据库表中的分区表为协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的每一个分区表所对应的谓词包括预设参数赋值类型的谓词,则在数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。
可选的,所述装置还包括:
第二运行单元,用于若所述N个数据库表中不包括分区表,则在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程;或者,
第三运行单元,用于若所述N个数据库表中的分区表不是协同分区,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程;或者,
第四运行单元,用于若所述N个数据库表中的分区表是协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的至少一个分区表所对应的谓词不包括预设参数赋值类型的谓词,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程。
可选的,所述谓词关系解析文件至少包括所述P个谓词、所述N个数据库表,以及如下映射关系集合:
由所述Y个SQL基本块中针对多个数据库表之间的连接关系进行限定的谓词与对应的数据库表之间的第一映射关系所组成的第一映射关系集合;
由所述Y个SQL基本块中针对单个数据库表进行限定的谓词与对应的数据库表之间的第二映射关系所组成的第二映射关系集合;
由所述P个谓词中用于描述SQL基本块之间的连接关系的谓词与对应的SQL基本块之间的第三映射关系所组成的第三映射关系集合。
可选的,所述衍生单元502具体用于:
基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
可选的,所述衍生单元502基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生出与所述SQL基本块中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生与所述谓词关系解析文件中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生与所述SQL基本块中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词,且基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第二映射关系集合,未衍生出任何谓词,则确定所述谓词关系解析文件中除所述P个谓词之外的谓词为与所述谓词关系解析文件中的数据库表对应的衍生谓词。
可选的,所述解析单元501具体用于:
基于预存的SQL重写策略处理所述待处理存储过程中的X个SQL语句为具有优化空间的X个SQL语句;
解析所述具有优化空间的X个SQL语句为所述Y个SQL基本块;
其中,所述SQL重写策略至少包括以下任意一种:
视图扩展view expansion、子查询抚平subquery flattening、常量表达式计算constant arithmetic evaluation、逻辑谓词重写logical rewriting of predicates以及语义优化semantic optimization。
需要注意的是,本发明实施例所描述的存储过程处理装置是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。
举例来说,本领域技术员人可以知晓该存储过程处理装置的硬件载体的组成形式具体可以是图3所示的计算机设备。
其中,所述解析单元501的功能可以由所述计算机设备中的处理器301和存储器303来实现,具体是通过处理器100运行存储器303中的解析模块,以解析待处理存储过程中的X个SQL语句为Y个SQL基本块;
其中,所述解析单元501的功能可以由所述计算机设备中的处理器301和存储器303来实现,具体是通过处理器100运行存储器303中的衍生模块,以基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词;
其中,所述解析单元501的功能可以由所述计算机设备中的处理器301和存储器303来实现,具体是通过处理器100运行存储器303中的第一运行模块,以在数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。
可以看出,本发明实施例中,本发明实施例公开的存储过程处理装置的解析单元首先将待处理存储过程中的SQL语句解析为SQL基本块,其次,衍生单元基于SQL基本块中的谓词生成谓词关系解析文件,并解析谓词关系解析文件中的谓词,衍生出谓词关系解析文件中的数据库表对应的衍生谓词,最后,在判断出数据库表是协同分区的,且谓词关系解析文件中的每一个分区表所对应的谓词均包括预设参数赋值类型的谓词的情况下,第一运行单元在数据库系统中的指定分区上运行所述待处理存储过程。可见,本发明实施例的数据库系统能够自动识别出当前待处理存储过程的单分区类型,并在指定分区上运行该待处理存储过程,有利于提升数据库系统的整体性能和可用性。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种存储过程处理方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种存储过程处理方法,由数据库系统执行,所述数据库系统运行在计算机设备上,其特征在于,包括:
解析待处理存储过程中的X个SQL语句为Y个SQL基本块,所述SQL基本块为不包含子查询和视图的SQL语句,所述Y个SQL基本块包括P个谓词和N个数据库表,X为正整数,Y为大于或等于X的整数,P、N为正整数;
若所述N个数据库表至少包括1个分区表,则基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,所述谓词关系解析文件表明所述P个谓词与所述N个数据库表和与所述Y个基本块之间的关系,所述衍生谓词为根据所述P个谓词衍生的等值谓词;
若所述N个数据库表中的分区表为协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的每一个分区表所对应的谓词包括预设参数赋值类型的谓词,则在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述N个数据库表中不包括分区表,则在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表不是协同分区,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表是协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的至少一个分区表所对应的谓词不包括预设参数赋值类型的谓词,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程。
3.根据权利要求1所述的方法,其特征在于,所述谓词关系解析文件至少包括所述P个谓词、所述N个数据库表,以及如下映射关系集合:
由所述Y个SQL基本块中针对多个数据库表之间的连接关系进行限定的谓词与对应的数据库表之间的第一映射关系所组成的第一映射关系集合;
由所述Y个SQL基本块中针对单个数据库表进行限定的谓词与对应的数据库表之间的第二映射关系所组成的第二映射关系集合;
由所述P个谓词中用于描述SQL基本块之间的连接关系的谓词与对应的SQL基本块之间的第三映射关系所组成的第三映射关系集合。
4.根据权利要求3所述的方法,其特征在于,所述解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,包括:
基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
5.根据权利要求4所述的方法,其特征在于,所述基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,包括:
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生出与所述SQL基本块中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生与所述谓词关系解析文件中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生与所述SQL基本块中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词,且基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第二映射关系集合,未衍生出任何谓词,则确定所述谓词关系解析文件中除所述P个谓词之外的谓词为与所述谓词关系解析文件中的数据库表对应的衍生谓词。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述解析待处理存储过程中的X个SQL语句为Y个SQL基本块,包括:
基于预存的SQL重写策略处理所述待处理存储过程中的X个SQL语句为具有优化空间的X个SQL语句;
解析所述具有优化空间的X个SQL语句为所述Y个SQL基本块;
其中,所述SQL重写策略至少包括以下任意一种:
视图扩展、子查询抚平、常量表达式计算、逻辑谓词重写以及语义优化。
7.一种存储过程处理装置,其特征在于,包括:
解析单元,用于解析待处理存储过程中的X个SQL语句为Y个SQL基本块,所述SQL基本块为不包含子查询和视图的SQL语句,所述Y个SQL基本块包括P个谓词和N个数据库表,X为正整数,Y为大于或等于X的整数,P、N为正整数;
衍生单元,用于若所述N个数据库表至少包括1个分区表,则基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,所述谓词关系解析文件表明所述P个谓词与所述N个数据库表和与所述Y个基本块之间的关系,所述衍生谓词为根据所述P个谓词衍生的等值谓词;
第一运行单元,用于若所述N个数据库表中的分区表为协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的每一个分区表所对应的谓词包括预设参数赋值类型的谓词,则在数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二运行单元,用于若所述N个数据库表中不包括分区表,则在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程;或者,
第三运行单元,用于若所述N个数据库表中的分区表不是协同分区,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程;或者,
第四运行单元,用于若所述N个数据库表中的分区表是协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的至少一个分区表所对应的谓词不包括预设参数赋值类型的谓词,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程。
9.根据权利要求7所述的装置,其特征在于,所述谓词关系解析文件至少包括所述P个谓词、所述N个数据库表,以及如下映射关系集合:
由所述Y个SQL基本块中针对多个数据库表之间的连接关系进行限定的谓词与对应的数据库表之间的第一映射关系所组成的第一映射关系集合;
由所述Y个SQL基本块中针对单个数据库表进行限定的谓词与对应的数据库表之间的第二映射关系所组成的第二映射关系集合;
由所述P个谓词中用于描述SQL基本块之间的连接关系的谓词与对应的SQL基本块之间的第三映射关系所组成的第三映射关系集合。
10.根据权利要求9所述的装置,其特征在于,所述衍生单元具体用于:
基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
11.根据权利要求10所述的装置,其特征在于,所述衍生单元基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生出与所述SQL基本块中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生与所述谓词关系解析文件中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生与所述SQL基本块中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词,且基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第二映射关系集合,未衍生出任何谓词,则确定所述谓词关系解析文件中除所述P个谓词之外的谓词为与所述谓词关系解析文件中的数据库表对应的衍生谓词。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述解析单元具体用于:
基于预存的SQL重写策略处理所述待处理存储过程中的X个SQL语句为具有优化空间的X个SQL语句;
解析所述具有优化空间的X个SQL语句为所述Y个SQL基本块;
其中,所述SQL重写策略至少包括以下任意一种:
视图扩展、子查询抚平、常量表达式计算、逻辑谓词重写以及语义优化。
13.一种计算机设备,其特征在于,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行以下步骤:
解析待处理存储过程中的X个SQL语句为Y个SQL基本块,所述SQL基本块为不包含子查询和视图的SQL语句,所述Y个SQL基本块包括P个谓词和N个数据库表,X为正整数,Y为大于或等于X的整数,P、N为正整数;
若所述N个数据库表至少包括1个分区表,则基于所述P个谓词生成谓词关系解析文件,并解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,所述谓词关系解析文件表明所述P个谓词与所述N个数据库表和与所述Y个基本块之间的关系,所述衍生谓词为根据所述P个谓词衍生的等值谓词;
若所述N个数据库表中的分区表为协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的每一个分区表所对应的谓词包括预设参数赋值类型的谓词,则在数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程。
14.根据权利要求13所述的计算机设备,其特征在于,所述处理器还用于:
若所述N个数据库表中不包括分区表,则在所述数据库系统中的所述待处理存储过程的指定分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表不是协同分区,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程;或者,
若所述N个数据库表中的分区表是协同分区,且基于所述P个谓词和所述衍生谓词,判断出所述谓词关系解析文件中的至少一个分区表所对应的谓词不包括预设参数赋值类型的谓词,则在所述数据库系统中预设的多个分区上运行所述待处理存储过程。
15.根据权利要求13所述的计算机设备,其特征在于,所述谓词关系解析文件至少包括所述P个谓词、所述N个数据库表,以及如下映射关系集合:
由所述Y个SQL基本块中针对多个数据库表之间的连接关系进行限定的谓词与对应的数据库表之间的第一映射关系所组成的第一映射关系集合;
由所述Y个SQL基本块中针对单个数据库表进行限定的谓词与对应的数据库表之间的第二映射关系所组成的第二映射关系集合;
由所述P个谓词中用于描述SQL基本块之间的连接关系的谓词与对应的SQL基本块之间的第三映射关系所组成的第三映射关系集合。
16.根据权利要求15所述的计算机设备,其特征在于,所述处理器解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
17.根据权利要求16所述的计算机设备,其特征在于,所述处理器基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词的具体实现方式为:
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生出与所述SQL基本块中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生与所述谓词关系解析文件中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的谓词,则在所述谓词关系解析文件中添加衍生出的所述谓词,并更新包括衍生出的所述谓词与对应的数据库表之间的映射关系的第二映射关系集合为新的第二映射关系集合;以及,基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,衍生与所述SQL基本块中的数据库表对应的谓词;
若基于所述谓词关系解析文件中的每一个SQL基本块对应的第一映射关系集合和第二映射关系集合,未衍生出任何谓词,且基于所述谓词关系解析文件中的每一个SQL基本块对应的第二映射关系集合和所述Y个SQL基本块对应的第二映射关系集合,未衍生出任何谓词,则确定所述谓词关系解析文件中除所述P个谓词之外的谓词为与所述谓词关系解析文件中的数据库表对应的衍生谓词。
18.根据权利要求13-17任一项所述的计算机设备,其特征在于,所述处理器解析待处理存储过程中的X个SQL语句为Y个SQL基本块的具体实现方式为:
基于预存的SQL重写策略处理所述待处理存储过程中的X个SQL语句为具有优化空间的X个SQL语句;
解析所述具有优化空间的X个SQL语句为所述Y个SQL基本块;
其中,所述SQL重写策略至少包括以下任意一种:
视图扩展、子查询抚平、常量表达式计算、逻辑谓词重写以及语义优化。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/076239 WO2017156673A1 (zh) | 2016-03-14 | 2016-03-14 | 一种存储过程处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108780452A CN108780452A (zh) | 2018-11-09 |
CN108780452B true CN108780452B (zh) | 2021-10-01 |
Family
ID=59851984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680083345.5A Active CN108780452B (zh) | 2016-03-14 | 2016-03-14 | 一种存储过程处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108780452B (zh) |
WO (1) | WO2017156673A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506573B (zh) * | 2020-03-16 | 2024-03-12 | 中国平安人寿保险股份有限公司 | 数据库表分区方法、装置、计算机设备及存储介质 |
CN113282579A (zh) * | 2021-04-16 | 2021-08-20 | 北京沃东天骏信息技术有限公司 | 一种异构数据存储与检索方法、装置、设备及存储介质 |
CN114490672B (zh) * | 2022-04-06 | 2022-06-21 | 成都九洲电子信息系统股份有限公司 | 一种表格数据输入处理方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493827A (zh) * | 2008-01-21 | 2009-07-29 | 鸿富锦精密工业(深圳)有限公司 | 存储过程自适应系统及方法 |
CN101630332A (zh) * | 2009-07-30 | 2010-01-20 | 成都市华为赛门铁克科技有限公司 | 数据存储管理方法、数据存储管理装置和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9600513B2 (en) * | 2011-06-09 | 2017-03-21 | International Business Machines Corporation | Database table comparison |
CN102955801B (zh) * | 2011-08-25 | 2017-06-16 | 中兴通讯股份有限公司 | 基于分布式数据库系统的数据控制方法及系统 |
US9128990B2 (en) * | 2013-03-15 | 2015-09-08 | Microsoft Technology Licensing, Llc | Executing stored procedures at parallel databases |
US9552390B2 (en) * | 2014-04-29 | 2017-01-24 | Futurewei Technologies, Inc. | System and method for out of order multiple query execution within stored procedure |
CN104391895A (zh) * | 2014-11-12 | 2015-03-04 | 珠海世纪鼎利通信科技股份有限公司 | 一种基于云计算的sql语句处理系统 |
-
2016
- 2016-03-14 CN CN201680083345.5A patent/CN108780452B/zh active Active
- 2016-03-14 WO PCT/CN2016/076239 patent/WO2017156673A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493827A (zh) * | 2008-01-21 | 2009-07-29 | 鸿富锦精密工业(深圳)有限公司 | 存储过程自适应系统及方法 |
CN101630332A (zh) * | 2009-07-30 | 2010-01-20 | 成都市华为赛门铁克科技有限公司 | 数据存储管理方法、数据存储管理装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108780452A (zh) | 2018-11-09 |
WO2017156673A1 (zh) | 2017-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681702B2 (en) | Conversion of model views into relational models | |
US10642832B1 (en) | Reducing the domain of a subquery by retrieving constraints from the outer query | |
US10133778B2 (en) | Query optimization using join cardinality | |
US20170083573A1 (en) | Multi-query optimization | |
US9280568B2 (en) | Zero downtime schema evolution | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN106897322A (zh) | 一种数据库和文件系统的访问方法和装置 | |
US20120047117A1 (en) | Incremental Maintenance of Immediate Materialized Views with Outerjoins | |
CN111512283B (zh) | 数据库中的基数估算 | |
US11907213B2 (en) | Query processing method, data source registration method, and query engine | |
Armbrust et al. | Generalized scale independence through incremental precomputation | |
CN110019384B (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
US9953106B2 (en) | Dynamic generation of traversal code for a graph analytics environment | |
CN112015722A (zh) | 数据库管理方法、数据血缘分析方法以及相关装置 | |
CN105022739A (zh) | 数据的存储方法及装置 | |
US20140379753A1 (en) | Ambiguous queries in configuration management databases | |
CN108780452B (zh) | 一种存储过程处理方法及装置 | |
US20180357278A1 (en) | Processing aggregate queries in a graph database | |
US20190213007A1 (en) | Method and device for executing the distributed computation task | |
CN112825068A (zh) | 数据血缘生成方法及装置 | |
CN116561154A (zh) | Sql语句优化方法及装置 | |
US20180246931A1 (en) | Sqlscript compilation tracing system | |
CN112988701A (zh) | 数据库管理方法、装置、系统和存储介质 | |
US20170046344A1 (en) | Method for Performing In-Database Distributed Advanced Predictive Analytics Modeling via Common Queries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |