数据库查询语句的优化方法、存储介质与设备技术

技术编号:37876151 阅读:11 留言:0更新日期:2023-06-15 21:04
本发明专利技术提供了一种数据库查询语句的优化方法、存储介质与设备。其中上述方法包括:判断数据库查询语句是否满足实施语句优化方法的条件;若是,则将数据库查询语句中相关标量子查询语句提取至数据库查询语句最外层目标列;修改相关标量子查询中的约束条件。通过此方法将相关标量子查询提取至最外层目标列之后,数据库查询语句会先对所要查询数据进行ROWNUM分页操作,随后再根据经过分页后的数据执行相关标量子查询,减少了相关标量子查询所要循环遍历的次数,提升了数据库查询语句的执行效率。率。率。

【技术实现步骤摘要】
数据库查询语句的优化方法、存储介质与设备


[0001]本专利技术涉及数据库技术,特别是涉及一种数据库查询语句的优化方法、存储介质与设备。

技术介绍

[0002]在现有技术中,经常有查询数据库中限定行数或者分页查询的需求,一种可选的方法是使用ROWNUM。ROWNUM是由系统顺序分配从查询返回行的编号,返回的第一行分配的是1,第二行是2,依次类推,是先有结果集,再根据结果集添加的伪列。ROWNUM在约束条件中做判断,是检测到false就停止,如使用ROWNUM>3,因为ROWNUM的排序总是从1开始,所以会直接返回false,后面就不做检查了。故在进行分页操作时,需要使用嵌套的方式,在内层查询ROWNUM赋以别名,将ROWNUM作为查询结果在外层使用。一种具体的示例如:
[0003]select*from(select*,ROWNUM as row_id from t1 where ROWNUM<10)where row_id>3;
[0004]此语句便是先在内部取出ROWNUM序号小于10的数据,随后再以ROWNUM序号作为查询条件取出大于3的数据。

技术实现思路

[0005]本专利技术的一个目的是提升数据库查询语句的执行效率。
[0006]本专利技术一个进一步的目的是减少数据库查询语句所处理的数据量。
[0007]本专利技术一个进一步的目的是将符合优化条件的数据库查询语句执行顺序进行转换。
[0008]特别地,本专利技术提供了一种数据库查询语句的优化方法,其包括:
[0009]判断数据库查询语句是否满足实施语句优化方法的条件;
[0010]若是,则将数据库查询语句中相关标量子查询语句提取至数据库查询语句最外层目标列;
[0011]修改相关标量子查询中的约束条件。
[0012]可选地,判断数据库查询语句是否满足实施语句优化方法的条件的步骤包括:
[0013]判断数据库查询语句是否为ROWNUM的分页操作形式;
[0014]若数据库查询语句是ROWNUM的分页操作形式,则判断数据库查询语句内层目标列是否存在相关标量子查询。
[0015]可选地,判断数据库查询语句内层目标列是否存在相关标量子查询的步骤之后包括:
[0016]若数据库查询语句内层目标列存在相关标量子查询,则判断数据库查询语句内层目标列是否含有排序和/或分组操作语句。
[0017]可选地,判断数据库查询语句内层目标列是否存在相关标量子查询的步骤之后还包括:
[0018]若数据库查询语句内层目标列不存在相关标量子查询,则判定不满足实施语句优化方法的条件。
[0019]可选地,判断数据库查询语句内层目标列是否含有排序和/或分组操作语句的步骤之后包括:
[0020]若数据库查询语句内层目标列含有排序和/或分组操作语句,则判断排序和/或分组操作语句的作用对象是否与相关标量子查询的结果相关。
[0021]可选地,判断数据库查询语句内层目标列是否含有排序和/或分组操作语句的步骤之后还包括:
[0022]若数据库查询语句内层目标列不含有排序和/或分组操作语句,则判定满足实施语句优化方法的条件。
[0023]可选地,判断排序和/或分组操作语句的作用对象是否与相关标量子查询的结果相关的步骤之后包括:
[0024]若排序和/或分组操作语句的作用对象与相关标量子查询的结果无关,则判定满足实施语句优化方法的条件。
[0025]可选地,判断排序和/或分组操作语句的作用对象是否与相关标量子查询的结果相关的步骤之后还包括:
[0026]若排序和/或分组操作语句的作用对象与相关标量子查询的结果相关,则判定不满足实施语句优化方法的条件。
[0027]根据本专利技术的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库查询语句的优化方法。
[0028]根据本专利技术的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库查询语句的优化方法。
[0029]本专利技术的数据库查询语句的优化方法,筛选出符合优化条件的数据库查询语句,随后将该数据库查询语句中相关标量子查询的执行顺序进行改变,从而减少该查询语句执行时所循环遍历的次数,提升该数据库查询语句的执行效率。
[0030]进一步地,本专利技术的数据库查询语句的优化方法,首先判断该数据库查询语句是否为ROWNUM的分页操作形式;若是,则判断该数据库查询语句内部是否存在相关标量子查询;若该数据库查询语句内部存在相关标量子查询,则判断该查询语句是否存在排序和/或分组操作,若存在排序和/或分组操作,则判断排序和/或分组操作语句的作用对象是否与相关标量子查询的结果相关;若所调用对象与该相关标量子查询的结果无关或不存在排序和/或分组操作,则可以将该相关标量子查询提取至最外层位置,并修改相关标量子查询中有关的约束条件内容。通过此方法将相关标量子查询提取至最外层位置之后,该数据库查询语句会先对所要查询数据进行ROWNUM分页操作,随后再根据相关标量子查询的结果对ROWNUM分页操作结果集进行循环遍历,减少了相关标量子查询所要循环遍历的次数,提升了数据库查询语句的执行效率。
[0031]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0032]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0033]图1是根据本专利技术一个实施例的数据库查询语句的优化方法的流程示意图;
[0034]图2是根据本专利技术另一个实施例的数据库查询语句的优化方法的流程示意图;
[0035]图3是根据本专利技术一个实施例的数据库查询语句的优化方法中机器可读存储介质的示意图;以及
[0036]图4是根据本专利技术一个实施例的数据库查询语句的优化方法中计算机设备的示意图。
具体实施方式
[0037]本领域技术人员应当理解的是,下文所描述的实施例仅仅是本专利技术的一部分实施例,而不是本专利技术的全部实施例,该一部分实施例旨在用于解释本专利技术的技术原理,并非用于限制本专利技术的保护范围。基于本专利技术提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本专利技术的保护范围之内。
[0038]在现有技术中,经常有查询数据库中限定行数或者分页查询的需求,一种可选的方法是使用ROWNUM。ROWNUM是由系统顺序分配从查询返回行的编号,返回的第一行分配的是1,第二行是2,依次类推,是先有结果集,再根据结果集添加的伪列。ROWNUM在约束条件中做本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库查询语句的优化方法,包括:判断所述数据库查询语句是否满足实施语句优化方法的条件;若是,则将所述数据库查询语句中相关标量子查询语句提取至所述数据库查询语句最外层目标列;修改所述相关标量子查询中的约束条件。2.根据权利要求1所述的数据库查询语句的优化方法,其中,所述判断所述数据库查询语句是否满足实施语句优化方法的条件的步骤包括:判断所述数据库查询语句是否为ROWNUM的分页操作形式;若所述数据库查询语句是所述ROWNUM的分页操作形式,则判断所述数据库查询语句内层目标列是否存在相关标量子查询。3.根据权利要求2所述的数据库查询语句的优化方法,其中,所述判断所述数据库查询语句内层目标列是否存在相关标量子查询的步骤之后包括:若所述数据库查询语句内层目标列存在所述相关标量子查询,则判断所述数据库查询语句内层目标列是否含有排序和/或分组操作语句。4.根据权利要求2所述的数据库查询语句的优化方法,其中,所述判断所述数据库查询语句内层目标列是否存在相关标量子查询的步骤之后还包括:若所述数据库查询语句内层目标列不存在所述相关标量子查询,则判定不满足实施语句优化方法的条件。5.根据权利要求3所述的数据库查询语句的优化方法,其中,所述判断所述数据库查询语句内层目标列是否含有排序和/或分组操作语句的步骤之后包括:若所述数据库查询语句内层目标列含有所述排序和/或分组操作语句,则判断...

【专利技术属性】
技术研发人员:王源春徐登峰尹强
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1