[发明专利]一种存储过程处理方法及装置有效
申请号: | 201680083345.5 | 申请日: | 2016-03-14 |
公开(公告)号: | CN108780452B | 公开(公告)日: | 2021-10-01 |
发明(设计)人: | 王国平;朱俊华 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/27;G06F16/28 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存储 过程 处理 方法 装置 | ||
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所述的方法,其特征在于,所述解析所述谓词关系解析文件中的谓词,以衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词,包括:
基于所述谓词关系解析文件中的所述第一映射关系集合、所述第二映射关系集合和所述第三映射关系集合,衍生出与所述谓词关系解析文件中的数据库表对应的衍生谓词。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680083345.5/1.html,转载请声明来源钻瓜专利网。