[发明专利]处理数据库查询语句的方法和装置有效
| 申请号: | 202210392238.8 | 申请日: | 2022-04-15 |
| 公开(公告)号: | CN114490724B | 公开(公告)日: | 2022-06-14 |
| 发明(设计)人: | 施文俊;朱涛 | 申请(专利权)人: | 北京奥星贝斯科技有限公司 |
| 主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2452;G06F16/2455 |
| 代理公司: | 北京布瑞知识产权代理有限公司 11505 | 代理人: | 武甜 |
| 地址: | 100020 北京市朝阳区东三*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 处理 数据库 查询 语句 方法 装置 | ||
本公开披露了一种处理数据库查询语句的方法和装置。该方法包括:接收第一数据库查询语句,第一数据库查询语句包括FROM子句中的第一视图,以及第一视图与第一数据表的连接操作,该第一视图中封装有第一窗口函数;根据第一数据库查询语句生成第二数据库查询语句,第二数据库查询语句与第一数据库查询语句等价,第二数据库查询语句包括FROM子句中的第二视图,第二视图中封装有第一窗口函数,以及第一数据表与第二数据表的连接操作,该第二数据表为第一视图对应的数据表。
技术领域
本公开涉及数据库技术领域,并且更为具体地,涉及一种处理数据库查询语句的方法和装置。
背景技术
数据库查询中经常会用到连接操作和窗口函数等查询语句以进行业务分析。某些场景中,如果数据库查询语句中的窗口函数位于该数据库查询语句的FROM子句中,那么查询优化器会先执行窗口函数、再执行连接操作,导致数据库查询语句的执行效率较低。
发明内容
有鉴于此,本公开提供一种处理数据库查询语句的方法和装置,以提升数据库查询语句的执行效率。
第一方面,提供一种处理数据库查询语句的方法,包括:接收第一数据库查询语句,所述第一数据库查询语句包括FROM子句中的第一视图,以及所述第一视图与第一数据表的连接操作,所述第一视图中封装有第一窗口函数;根据所述第一数据库查询语句生成第二数据库查询语句,所述第二数据库查询语句与所述第一数据库查询语句等价,所述第二数据库查询语句包括FROM子句中的第二视图,所述第二视图中封装有所述第一窗口函数,以及所述第一数据表与第二数据表的连接操作,所述第二数据表为所述第一视图对应的数据表。
可选地,所述根据所述第一数据库查询语句生成第二数据库查询语句,包括:判断所述第一视图与所述第一数据表的连接操作能否下推到所述第一视图的内部;如果所述第一视图与所述第一数据表的连接操作能下推到所述第一视图的内部,则根据所述第一数据库查询语句,将所述第一视图与所述第一数据表的连接操作下推到所述第一视图的内部,得到所述第二数据库查询语句。
可选地,所述判断所述第一视图与所述第一数据表的连接操作能否下推到所述第一视图的内部,包括:判断所述第一视图与所述第一数据表是否满足第一条件,在满足所述第一条件的情况下,则认为所述第一视图与所述第一数据表的连接操作能下推到所述第一视图的内部;其中,所述第一条件包括:所述第一视图与所述第一数据表之间存在等值连接条件,且所述等值连接条件中的关于所述第一视图的表达式依赖于所述第一窗口函数中的分组字段。
可选地,所述方法还包括:检查第一连接条件中关于所述第一数据表的表达式是否满足唯一性,其中,所述第一连接条件为所述第一视图和所述第一数据表的连接操作对应的连接条件;如果关于所述第一数据表的表达式不满足唯一性,在所述第一窗口函数的分组字段中添加所述第一数据表的唯一键。
可选地,在所述检查第一连接条件中的关于所述第一数据表的表达式是否满足唯一性之后,所述方法还包括:如果关于所述第一数据表的表达式不满足唯一性,计算所述第二数据库查询语句的执行代价,以确定是否生成所述第二数据库查询语句。
可选地,在所述根据所述第一数据库查询语句生成第二数据库查询语句之前,所述方法还包括:检查所述第一视图的合法性;所述根据所述第一数据库查询语句生成第二数据库查询语句,包括:在所述第一视图合法的情况下,根据所述第一数据库查询语句生成所述第二数据库查询语句。
可选地,在所述第一视图中还封装有第二窗口函数的情况下,所述第一条件包括:所述第一视图与所述第一数据表之间存在等值连接条件,且所述等值连接条件中的关于所述第一视图的表达式依赖于所述第一窗口函数中的分组字段和所述第二窗口函数中的分组字段的交集。
可选地,第二视图中还封装有仅关于所述第一数据表的过滤条件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奥星贝斯科技有限公司,未经北京奥星贝斯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210392238.8/2.html,转载请声明来源钻瓜专利网。





