[发明专利]一种数据库语句优化方法、装置、设备及存储介质有效
申请号: | 201910239809.2 | 申请日: | 2019-03-27 |
公开(公告)号: | CN109947791B | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 万伟;朱仲颖 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 语句 优化 方法 装置 设备 存储 介质 | ||
1.一种数据库语句优化方法,其特征在于,包括:
获取用户输入的查询语句;
若所述查询语句包括外层分组子句和表单子句,则根据所述外层分组子句构建内层分组子句,其中,所述表单子句的表单项为派生表且不包括分组子句;
根据所述内层分组子句转换所述查询语句;
外层分组项中包括所述派生表的列;
所述根据所述内层分组子句转换所述查询语句包括:
若所述派生表中存在不是外层分组项的查询项,则删除所述派生表的查询项;
所述删除所述派生表的查询项之后,还包括:
新建内层派生表,所述内层派生表包括:包含内层分组子句的内层查询语句,根据外层分组子句构建所述内层查询语句;
根据所述内层派生表构建中间层派生表;
根据所述中间层派生表转换所述查询语句。
2.根据权利要求1所述的方法,其特征在于,所述查询语句还包括外层集函数,其中,所述外层集函数包括MAX函数、MIN函数、COUNT函数以及SUM函数中的至少一种,且所述SUM函数的参数为所述派生表的列,所述MAX函数、MIN函数和COUNT函数的参数为常数和/或所述派生表的列。
3.根据权利要求2所述的方法,其特征在于,根据所述内层分组子句转换所述查询语句包括:
若所述派生表中存在不是外层分组项且不是外层集函数的参数的查询项,则删除所述派生表的查询项。
4.根据权利要求3所述的方法,其特征在于,删除所述派生表的查询项之后,还包括:
新建内层派生表,所述内层派生表包括:包含内层集函数和内层分组子句的内层查询语句,根据外层分组子句构建所述内层查询语句,根据外层集函数构建内层集函数;
根据所述内层派生表构建中间层派生表;
根据所述中间层派生表转换所述查询语句。
5.根据权利要求3所述的方法,其特征在于,还包括:
若外层集函数为COUNT函数,且COUNT函数的参数为所述派生表的列,则将所述COUNT函数转换为SUM函数,参数不变;
若外层集函数为COUNT函数,且COUNT函数的参数为常数,则将所述COUNT函数转换为SUM函数,参数转换为TMPCOL。
6.一种数据库语句优化装置,其特征在于,包括:
获取模块,用于获取用户输入的查询语句;
构建模块,用于若所述查询语句包括外层分组子句和表单子句,则根据所述外层分组子句构建内层分组子句,其中,所述表单子句的表单项为派生表且不包括分组子句;
转换模块,用于根据所述内层分组子句转换所述查询语句;
外层分组项中包括所述派生表的列;
转换模块包括:
第一删除单元,用于若所述派生表中存在不是外层分组项的查询项,则删除所述派生表的查询项;
第一新建单元,用于新建内层派生表,所述内层派生表包括:包含内层分组子句的内层查询语句,根据外层分组子句构建所述内层查询语句;
第一派生表构建单元,用于根据所述内层派生表构建中间层派生表;
第一语句转换单元,用于根据所述中间层派生表转换所述查询语句。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910239809.2/1.html,转载请声明来源钻瓜专利网。