(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210392238.8
(22)申请日 2022.04.15
(65)同一申请的已公布的文献号
申请公布号 CN 114490724 A
(43)申请公布日 2022.05.13
(73)专利权人 北京奥星贝斯科技有限公司
地址 100020 北京市朝阳区东 三环中路1号
1幢1单元9层901内02号单 元
(72)发明人 施文俊 朱涛
(74)专利代理 机构 北京布瑞知识产权代理有限
公司 11505
专利代理师 武甜
(51)Int.Cl.
G06F 16/242(2019.01)
G06F 16/2452(2019.01)G06F 16/2455(2019.01)
(56)对比文件
CN 112732752 A,2021.04.3 0
CN 112597182 A,2021.04.02
CN 105718593 A,2016.0 6.29
CN 114168620 A,202 2.03.11
CN 111611274 A,2020.09.01
CN 113282607 A,2021.08.20
CN 113553339 A,2021.10.26
CN 113420023 A,2021.09.21
CN 112765286 A,2021.0 5.07
审查员 张琳琳
(54)发明名称
处理数据库查询语句的方法和装置
(57)摘要
本公开披露了一种处理数据库查询语句的
方法和装置。 该方法包括: 接收第一数据库查询
语句, 第一数据库查询语句包 括FROM子句中的第
一视图, 以及第一视图与第一数据表的连接操
作, 该第一视图中封装有第一窗口函数; 根据第
一数据库查询语句生成第二数据库查询语句, 第
二数据库查询语句与第一数据库查询语句等价,
第二数据库查询语句包括FROM子句中的第二视
图, 第二视图中封装有第一窗口函数, 以及第一
数据表与第二数据表的连接操作, 该第二数据表
为第一视图对应的数据表。
权利要求书3页 说明书13页 附图4页
CN 114490724 B
2022.06.14
CN 114490724 B
1.一种处 理数据库查询语句的方法, 包括:
接收第一数据库查询语句, 所述第一数据库查询语句包括FROM子句中的第一视图, 以
及所述第一视图与第一数据表的连接操作, 所述第一视图中封装有第一窗口函数;
根据所述第 一数据库查询语句生成第 二数据库查询语句, 所述第 二数据库查询语句与
所述第一数据库查询语句等价, 所述第二数据库查询语句包括FROM子句中的第二视图, 所
述第二视图中封装有所述第一窗口函数, 以及所述第一数据表与第二数据表的连接操作,
所述第二数据表为所述第一视图对应的数据表。
2.根据权利要求1所述的方法, 所述根据所述第一数据库查询语句生成第二数据库查
询语句, 包括:
判断所述第一视图与所述第一数据表的连接操作能否下推到所述第一视图的内部;
如果所述第 一视图与 所述第一数据表的连接操作能下推到所述第 一视图的内部, 则根
据所述第一数据库查询语句, 将所述第一视图与所述第一数据表的连接操作下推到所述第
一视图的内部, 得到所述第二数据库查询语句。
3.根据权利要求2所述的方法, 所述判断所述第一视 图与所述第一数据表的连接操作
能否下推到所述第一视图的内部, 包括:
判断所述第 一视图与 所述第一数据表是否满足第 一条件, 在满足所述第 一条件的情况
下, 则认为所述第一视图与所述第一数据表的连接操作能下推到所述第一视图的内部;
其中, 所述第 一条件包括: 所述第 一视图与所述第 一数据表之间存在等值连接条件, 且
所述等值连接条件中的关于所述第一视图的表达式依赖于所述第一窗口函数中的分组字
段。
4.根据权利要求1所述的方法, 所述方法还 包括:
检查第一连接条件中的关于所述第一数据表的表达式是否满足唯一性, 其中, 所述第
一连接条件为所述第一视图和所述第一数据表的连接操作对应的连接条件;
如果关于所述第一数据表的表达 式不满足唯一性, 在所述第 一窗口函数的分组字段中
添加所述第一数据表的唯一键 。
5.根据权利要求4所述的方法, 在所述检查第一连接条件中的关于所述第一数据表的
表达式是否满足唯一 性之后, 所述方法还 包括:
如果关于所述第一数据表的表达 式不满足唯一性, 计算所述第 二数据库查询语句的执
行代价, 以确定是否生成所述第二数据库查询语句。
6.根据权利要求1所述的方法, 在所述根据所述第一数据库查询语句生成第二数据库
查询语句之前, 所述方法还 包括:
检查所述第一视图的合法性;
所述根据所述第一数据库查询语句生成第二数据库查询语句, 包括:
在所述第一视图合法的情况下, 根据 所述第一数据库查询语句生成所述第 二数据库查
询语句。
7.根据权利要求3所述的方法, 在所述第 一视图中还封装有第 二窗口函数的情况下, 所
述第一条件包括: 所述第一视图与所述第一数据表之间存在等值连接条件, 且所述等值连
接条件中的关于所述第一视图的表达式依赖于所述第一窗口函数中的分组字段和所述第
二窗口函数中的分组字段的交集。权 利 要 求 书 1/3 页
2
CN 114490724 B
28.根据权利要求1所述的方法, 所述第二视图中还封装有仅关于所述第一数据表的过
滤条件。
9.一种处 理数据库查询语句的装置, 包括:
接收模块, 用于接收第一数据库查询语句, 所述第一数据库查询语句包括FROM子句中
的第一视图, 以及所述第一视图与第一数据表的连接操作, 所述第一视图中封装有第一窗
口函数;
生成模块, 用于根据所述第一数据库查询语句生成第二数据库查询语句, 所述第二数
据库查询语句与所述第一数据库查询语句等价, 所述第二数据库查询语句包括FROM子句中
的第二视图, 所述第二视图中封装有所述第一窗口函数, 以及所述第一数据表与第二数据
表的连接操作, 所述第二数据表为所述第一视图对应的数据表。
10.根据权利要求9所述的装置, 所述 生成模块进一 步包括:
判断模块, 用于判断所述第 一视图与所述第 一数据表的连接操作能否下推到所述第 一
视图的内部;
下推模块, 用于如果所述第 一视图与所述第 一数据表的连接操作能下推到所述第 一视
图的内部, 则根据所述第一数据库查询语句, 将所述第一视图与所述第一数据表的连接操
作下推到所述第一视图的内部, 得到所述第二数据库查询语句。
11.根据权利要求10所述的装置, 所述判断模块进一 步用于:
判断所述第 一视图与 所述第一数据表是否满足第 一条件, 在满足所述第 一条件的情况
下, 则认为所述第一视图与所述第一数据表的连接操作能下推到所述第一视图的内部;
其中, 所述第 一条件包括: 所述第 一视图与所述第 一数据表之间存在等值连接条件, 且
所述等值连接条件中的关于所述第一视图的表达式依赖于所述第一窗口函数中的分组字
段。
12.根据权利要求9所述的装置, 所述装置还 包括:
第一检查模块, 用于检查第 一连接条件中的关于所述第 一数据表的表达 式是否满足唯
一性, 其中, 所述第一连接条件为所述第一视图和所述第一数据表的连接操作对应的连接
条件;
添加模块, 用于如果关于所述第一数据表的表达式不满足唯一性, 在所述第一窗口函
数的分组字段中添加所述第一数据表的唯一键 。
13.根据权利要求12所述的装置, 所述装置还 包括:
计算模块, 用于如果关于所述第一数据表的表达式不满足唯一性, 计算所述第二数据
库查询语句的执 行代价, 以确定是否生成所述第二数据库查询语句。
14.根据权利要求9所述的装置, 所述装置还 包括:
第二检查模块, 用于检查所述第一视图的合法性;
所述生成模块进一步用于在所述第 一视图合法的情况下, 根据 所述第一数据库查询语
句生成所述第二数据库查询语句。
15.根据权利要求11所述的装置, 在所述第 一视图中还封装有第 二窗口函数的情况下,
所述第一条件包括: 所述第一视图与所述第一数据表之间存在等值连接条件, 且所述等值
连接条件中的关于所述第一视图的表达式依赖于所述第一窗口函数中的分组字段和所述
第二窗口函数中的分组字段的交集。权 利 要 求 书 2/3 页
3
CN 114490724 B
3
专利 处理数据库查询语句的方法和装置
文档预览
中文文档
21 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共21页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:14:18上传分享