数据查询的方法及装置制造方法及图纸

技术编号:37160130 阅读:15 留言:0更新日期:2023-04-06 22:24
本说明书实施例提供一种数据查询的方法及装置,在针对数据库进行分页查询过程中,对于查询请求中具有通过预定谓词实现分页查询语义的语义单元,可以通过和候选条件集中的候选条件进行匹配,按照匹配结果将预定谓词实现的分页查询语义的语义单元,转换成等价的分页查询子句。在可选的实施方式中,转换后的分页查询语句之间还可以相互合并。该实施方式可以减少分页查询过程中的无效数据读取和/或无效数据运算,提升数据库查询的执行效率。提升数据库查询的执行效率。提升数据库查询的执行效率。

【技术实现步骤摘要】
数据查询的方法及装置


[0001]本说明书一个或多个实施例涉及计算机
,尤其涉及数据查询的方法及装置。

技术介绍

[0002]在数据库相关的业务中存在大量分页查询场景。其中,分页查询通常是获取查询结果集中指定连续行的查询。分页查询可以通过分页谓词或分页查询子句实现。谓词的执行过程具有相应的规则,对具有分页查询语义的谓词,作为普通谓词执行可能会造成大量无用的基表数据读取及无效计算,执行效率较差。

技术实现思路

[0003]本说明书一个或多个实施例描述了一种数据查询的方法及装置,用以解决
技术介绍
提到的一个或多个问题。
[0004]根据第一方面,提供一种数据查询的方法,所述方法包括:获取当前查询请求,所述当前查询请求中包含通过预定谓词实现分页查询语义的第一语义单元;对所述第一语义单元与候选条件集中的各个候选条件进行匹配,各个候选条件分别用于描述通过所述预定谓词实现的各种分页查询语义单元,单个候选条件对应有与相应分页查询语义单元等价的单个分页查询子句;根据匹配结果,将所述第一语义单元转换成与所匹配到的第一候选条件等价的第一分页查询子句,得到当前查询请求对应的优化查询方案;利用所述优化查询方案进行数据查询,得到查询结果。
[0005]在一个实施例中,所述预定谓词为通过ROWNUM描述输出行数限定的谓词。
[0006]在一个实施例中,在第一语义单元仅通过所述预定谓词限定当前查询的输出行数实现分页查询语义的情况下,所述将所述第一语义单元转换成与匹配到的第一候选条件等价的第一分页查询子句包括:通过LIMIT语句替换所述预定谓词语句实现mySQL数据库分页查询语义;或者,通过FETCH语句替换所述预定谓词语句实现oracle数据库分页查询语义。
[0007]在一个实施例中,在第一语义单元通过内联视图输出由所述预定谓词限定预定输出行数的列,并在外层查询中利用所述限定预定输出行数的列实现分页查询语义的情况下,所述将所述第一语义单元转换成与匹配到的第一候选条件等价的第一分页查询子句包括:在所述第一语义单元满足可转化条件的情况下,用“偏移+输出行数”的行偏移语句代替通过内联视图输出由所述预定谓词限定预定输出行数的语句。
[0008]在一个实施例中,所述可转化条件包括:外层查询为单表查询;内联视图不包含预定语法集中的查询语法。
[0009]在一个实施例中,所述预定语法集包括关键词为GROUP

BY、ORDER

BY、Window Function中的至少一项的查询语法。
[0010]在一个实施例中,在所述优化查询语句中存在多个分页查询子句的情况下,所述利用所述优化查询方案进行数据查询,还包括:对所述多个分页查询语句进行分页查询合
并,利用分页查询合并后的优化查询方案进行数据查询。
[0011]在一个进一步的实施例中,在所述优化查询方案包括内联视图和外层查询,且外层查询和内联视图均包含分页查询子句的情况下,所述对所述多个分页查询语句进行分页查询合并还包括:将外层查询的分页查询语句合并下压到内联视图;其中,外层查询的行偏移量为M2,内联查询的行偏移量为M1的情况下,合并下压到内联视图的分页查询语句中,行偏移量为M1+M2。
[0012]在一个更进一步的实施例中,在外层输出列存在通过ROWNUM限定输出行数的情况下,将外层输出列转换为ROWNUM+M2。
[0013]根据第二方面,提供一种数据查询的装置,所述装置包括:
[0014]获取模块,配置为获取当前查询请求,所述当前查询请求中包含通过预定谓词实现分页查询语义的第一语义单元;
[0015]匹配模块,配置为对所述第一语义单元与候选条件集中的各个候选条件进行匹配,各个候选条件分别用于描述通过所述预定谓词实现的各种分页查询语义单元,单个候选条件对应有与相应分页查询语义单元等价的单个分页查询子句;
[0016]转换模块,配置为根据匹配结果,将所述第一语义单元转换成与所匹配到的第一候选条件等价的第一分页查询子句,得到当前查询请求对应的优化查询方案;
[0017]查询模块,配置为利用所述优化查询方案进行数据查询,得到查询结果。
[0018]根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
[0019]根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
[0020]通过本说明书实施例提供的方法和装置,在接收到数据库查询请求的情况下,对于查询请求中通过预定谓词实现分页查询语义的语义单元,通过和候选条件集中的候选条件进行匹配,按照匹配结果转换成等价的分页查询子句。在可选的实施方式中,转换后的分页查询语句之间还可以相互合并。该实施方式可以减少分页查询过程中的无效数据读取和/或无效数据运算,提升数据库查询的执行效率。
附图说明
[0021]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0022]图1示出根据本说明书的一个具体实施场景示意图;
[0023]图2示出根据本说明书一个实施例的数据查询的方法流程图;
[0024]图3示出根据一个实施例的数据查询的装置的示意性框图。
具体实施方式
[0025]下面结合附图,对本说明书提供的技术方案进行描述。
[0026]为了更清楚地理解本说明书的技术方案,首先结合一个具体实施场景描述本说明
书中的技术方案提出的技术背景。
[0027]图1示出了本说明书的一个具体实施架构。该实施架构涉及至少一个业务服务器及数据库。业务服务器可以为各个用户在相应终端上进行的相关业务(例如搜索业务、查询业务、收付款业务、导航业务等),提供相应业务支持。业务服务器在为终端提供相应业务支持过程中,可以向数据库中写入数据、读取数据。例如,业务服务器是为终端的购物业务、借贷业务、导航业务等提供业务支持的服务器等。相应地,业务服务器可以向数据库写入或读出购物记录数据(如购物品类、金额、时间等数据),借贷记录数据(如借贷数额、借贷种类、还款时间等数据),导航记录数据(如导航时间、到达目的地用时、导航路线和实际路线等数据)。数据库可以为一种业务服务器提供数据存储服务,也可以为多种业务服务器提供数据存储服务。在为多种业务服务器提供数据存储服务的情况下,基于业务服务器间的相互授权,单个业务服务器可以从数据库的多个业务数据表中读取数据。
[0028]业务服务器从数据库读取数据通常基于相应的查询请求进行。业务服务器发送相应查询请求,而数据库通过计算平台根据查询请求确定相应查询策略,并从数据库表中查询相本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据查询的方法,所述方法包括:获取当前查询请求,所述当前查询请求中包含通过预定谓词实现分页查询语义的第一语义单元;将所述第一语义单元与候选条件集中的各个候选条件进行匹配,各个候选条件分别用于描述通过所述预定谓词实现的各种分页查询语义单元,单个候选条件对应有与相应分页查询语义单元等价的单个分页查询子句;根据匹配结果,将所述第一语义单元转换成与所匹配到的第一候选条件等价的第一分页查询子句,得到当前查询请求对应的优化查询方案;利用所述优化查询方案进行数据查询,得到查询结果。2.如权利要求1所述的方法,其中,所述预定谓词为通过ROWNUM描述输出行数限定的谓词。3.如权利要求1所述的方法,其中,在第一语义单元仅通过所述预定谓词限定当前查询的输出行数实现分页查询语义的情况下,所述将所述第一语义单元转换成与匹配到的第一候选条件等价的第一分页查询子句包括:通过LIMIT语句替换所述预定谓词语句实现mySQL数据库分页查询语义;或者通过FETCH语句替换所述预定谓词语句实现oracle数据库分页查询语义。4.如权利要求1所述的方法,其中,在第一语义单元通过内联视图输出由所述预定谓词限定预定输出行数的列,并在外层查询中利用所述限定预定输出行数的列实现分页查询语义的情况下,所述将所述第一语义单元转换成与匹配到的第一候选条件等价的第一分页查询子句包括:在所述第一语义单元满足可转化条件的情况下,用“偏移+输出行数”的行偏移语句代替通过内联视图输出由所述预定谓词限定预定输出行数的语句。5.如权利要求4所述的方法,其中,所述可转化条件包括:外层查询为单表查询;内联视图不包含预定语法集中的查询语法。6.如权利要求5所述的方法,其中,所述预定语法集包括关键词为GROUP

BY、ORDER

BY、Window Function中的至少一项的查询...

【专利技术属性】
技术研发人员:赵占越王国平
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1