CN117235118B - 一种查询优化方法、存储介质与计算机设备 - Google Patents
一种查询优化方法、存储介质与计算机设备 Download PDFInfo
- Publication number
- CN117235118B CN117235118B CN202311352923.9A CN202311352923A CN117235118B CN 117235118 B CN117235118 B CN 117235118B CN 202311352923 A CN202311352923 A CN 202311352923A CN 117235118 B CN117235118 B CN 117235118B
- Authority
- CN
- China
- Prior art keywords
- rownum
- query
- condition
- query statement
- predicate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000001914 filtration Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 abstract description 17
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库技术,特别涉及一种查询优化方法、存储介质与计算机设备。该查询优化方法包括:获取查询语句以及查询语句的约束条件;根据查询语句的约束条件,判断查询语句是否符合谓词下推规则;若是,则判断查询语句是否满足ROWNUM优化条件;若满足,则对查询语句进行ROWNUM优化处理。本发明对符合谓词下推规则且满足ROWNUM优化条件的查询语句进行ROWNUM优化处理,有针对性地对满足条件的查询语句进行优化,提高了查询语句的执行效率,避免了由于对全部包含ROWNUM分页操作的查询语句均不执行谓词下推操作导致的内层扫描表的数据量大、查询语句的执行效率低的问题,进而提升了数据库的性能。
Description
技术领域
本发明涉及数据库技术,特别是涉及一种查询优化方法、存储介质与计算机设备。
背景技术
谓词下推是是指如果一个谓词在执行计划中即使处在不同的位置也不改变执行结果,那么就尽量把它保持在下层,为作用表提前做过滤操作。谓词下推是一种很普遍的数据库查询优化策略,但该策略有一定的局限性,不一定适用于现有的所有的场景。比如,当谓词中涉及非常耗时的操作,如包含复杂的自定义函数,把谓词操作下推到基表,然后执行该谓词条件操作的代价很大。尤其是当谓词条件操作选择性很差的情况下,频繁执行该谓词条件非常耗时,大大降低了查询的执行效率。因此,现有数据库优化器在进行查询优化时,算法会先将谓词条件细分为连接条件和过滤条件,再比较连接条件和过滤条件的复杂性,并仅将简单的过滤条件依旧下推到基表执行,以提升查询语句的执行效率。
然而,当查询语句中出现ROWNUM分页操作时,处理ROWNUM分页操作需要读取内层数据而后赋值ROWNUM伪列,外层使用内层ROWNUM进行过滤操作。例如,对于Select * from(select *,ROWNUM as row_id from test where ROWNUM < 100) where row_id>90;内层中执行的操作是:从表中读取一条数据,ROWNUM从1开始取值,符合ROWNUM<100条件,输出一条结果,直至第100条,ROWNUM取值为100,不符合ROWNUM<100条件,不再输出结果;外层执行的操作是:扫描内层返回的包括伪列row_id(ROWNUM的别称)结果集,row_id作为普通谓词条件进行过滤不符合row_id>90的数据内容。可以看出,内层ROWNUM条件和映射到外层的row_id(内层ROWNUM)条件的区别在于:前者是随单条数据输出随之添加的伪列,而非表中已存在的数据列;后者可以看做对查询表已有数据列做过滤操作。因此,外层的row_id不能轻易像常规谓词一样做下推变为ROWNUM条件。
现有数据库优化器在进行查询优化时,遇到包含ROWNUM分页操作的查询语句,算法若将ROWNUM作为简单的过滤条件依旧下推到基表执行,则会导致无法执行该查询语句的问题;若对所有包含ROWNUM分页操作的查询语句均不执行谓词下推操作,则会导致内层扫描表的数据量大、查询语句的执行效率低的问题。
发明内容
鉴于上述问题,本发明提出了一种克服上述问题或者至少部分地解决上述问题的查询优化方法、存储介质与计算机设备。
本发明一个目的是针对性地优化包含ROWNUM分页操作的查询语句,以提高查询语句的执行效率。
本发明一个进一步的目的是进一步提高辨别可谓词下推的包含ROWNUM分页操作的查询语句的准确性。
特别地,本发明提供了一种查询优化方法,其包括:
获取查询语句以及查询语句的约束条件;
根据查询语句的约束条件,判断查询语句是否符合谓词下推规则;
若是,则判断查询语句是否满足ROWNUM优化条件;
若满足,则对查询语句进行ROWNUM优化处理。
可选地,判断查询语句是否满足ROWNUM优化条件包括:
判断查询语句中是否包含ROWNUM分页操作;
若不包含,则确定查询语句不满足ROWNUM优化条件;
若包含,则判断查询语句中的ROWNUM分页操作是否符合谓词下推条件;
若符合,则确定查询语句满足ROWNUM优化条件;
若不符合,则确定查询语句不满足ROWNUM优化条件。
可选地,判断查询语句中的ROWNUM分页操作是否符合谓词下推条件包括:
判断约束条件是否针对内层ROWNUM;
判断约束条件是否符合预设的条件形式;
若两项判断的结果均为是的情况下,确定查询语句中的ROWNUM分页操作符合预设的谓词下推条件。
可选地,预设的条件形式包括:
(内层ROWNUM)</<=(任何有理数值)或(内层ROWNUM)=1。
可选地,对查询语句进行ROWNUM优化处理包括:
对查询语句中的ROWNUM操作进行谓词下推处理。
可选地,对查询语句中的ROWNUM操作进行谓词下推处理包括:
将外层的约束条件中对应内层ROWNUM的元素改为“ROWNUM”,并以and条件连接的形式,添加到内层的约束条件中。
可选地,约束条件包括过滤条件和连接条件;并且
根据查询语句的约束条件,判断查询语句是否符合谓词下推规则包括:
在查询语句的约束条件为连接条件的情况下,若查询语句的连接条件仅引用Nullable-side的表,则确定查询语句符合谓词下推规则;以及
在查询语句的约束条件为过滤条件的情况下,若查询语句的过滤条件仅引用Nonnullable-side的表或引用Nullable-side的表且所述过滤条件是严格的,则确定查询语句符合谓词下推规则。
可选地,在判断查询语句是否符合谓词下推规则的步骤之后,查询优化方法还包括:
在确定查询语句不符合谓词下推规则的情况下,跳过执行谓词下推的步骤;并且
在判断查询语句是否满足ROWNUM优化条件的步骤之后,查询优化方法还包括:
在确定查询语句不满足ROWNUM优化条件的情况下,跳过执行谓词下推的步骤。
根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的查询优化方法。
根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的查询优化方法。
本发明的查询优化方法,适用于含有ROWNUM分页操作的查询语句的优化,通过依次判断查询语句是否符合谓词下推规则以及查询语句是否满足ROWNUM优化条件,在两个判断结果均为是的情况下,对查询语句进行ROWNUM优化处理,从而实现了利用谓词下推规则以及ROWNUM优化条件,准确地将可谓词下推的含有ROWNUM分页操作的查询语句和不可谓词下推的含有ROWNUM分页操作的查询语句区分开。另外,本发明的查询优化方法仅对可谓词下推的含有ROWNUM分页操作的查询语句执行谓词下推操作,以完成ROWNUM优化,从而针对性地优化了包含ROWNUM分页操作的查询语句,一方面减少了内层扫描表的数据量,另一方面提前过滤外层处理表的数据量,提高了查询语句的执行效率,避免了由于对全部包含ROWNUM分页操作的查询语句均不执行谓词下推操作导致的内层扫描表的数据量大、查询语句的执行效率低的问题,进而提升了数据库的性能。
进一步地,本发明的查询优化方法,细化了判断查询语句是否满足ROWNUM优化条件的判断流程,实现了更准确地区分可谓词下推的含有ROWNUM分页操作的查询语句和不可谓词下推的含有ROWNUM分页操作的查询语句,从而提高了辨别可谓词下推的包含ROWNUM分页操作的查询语句的准确性,进而进一步保证了数据库的性能。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的查询优化方法的示意图;
图2是根据本发明另一实施例的查询优化方法的流程图;
图3是根据本发明一个实施例的机器可读存储介质的示意图;以及
图4是根据本发明一个实施例的计算机设备的示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是根据本发明一个实施例的查询优化方法的示意图。如图1所示,该查询优化方法一般性地可以包括:
步骤S102,获取查询语句以及查询语句的约束条件。
步骤S104,根据查询语句的约束条件,判断查询语句是否符合谓词下推规则,若是,则执行步骤S106。需要说明的是,谓词下推规则为数据普遍使用的常规谓词下推规则。
步骤S106,判断查询语句是否满足ROWNUM优化条件,若是,则执行步骤S108。需要说明的是,ROWNUM优化条件预先设定并存储于数据库中。
步骤S108,对查询语句进行ROWNUM优化处理。
本发明实施例的查询优化方法,适用于含有ROWNUM分页操作的查询语句的优化,通过依次判断查询语句是否符合谓词下推规则以及查询语句是否满足ROWNUM优化条件,在两个判断结果均为是的情况下,对查询语句进行ROWNUM优化处理,从而实现了利用谓词下推规则以及ROWNUM优化条件,准确地将可谓词下推的含有ROWNUM分页操作的查询语句和不可谓词下推的含有ROWNUM分页操作的查询语句区分开。另外,本发明的查询优化方法仅对可谓词下推的含有ROWNUM分页操作的查询语句执行谓词下推操作,以完成ROWNUM优化,从而针对性地优化了包含ROWNUM分页操作的查询语句,一方面减少了内层扫描表的数据量,另一方面提前过滤外层处理表的数据量,提高了查询语句的执行效率,避免了由于对全部包含ROWNUM分页操作的查询语句均不执行谓词下推操作导致的内层扫描表的数据量大、查询语句的执行效率低的问题,进而提升了数据库的性能。
在一些实施例中,在上述步骤S104中判断查询语句是否符合谓词下推规则的步骤之后,本发明的查询优化方法还包括:在确定查询语句不符合谓词下推规则的情况下,跳过执行谓词下推的步骤。另外,在上述步骤S106之后,本发明的查询优化方法还可以包括以下步骤:在确定查询语句不满足ROWNUM优化条件的情况下,跳过执行谓词下推的步骤。也就是说,在上述步骤S104或上述步骤S106的判断结果为否的情况下,数据库的优化器跳过执行谓词下推的步骤。
本发明的查询优化方法对于不可谓词下推的含有ROWNUM分页操作的查询语句跳过执行谓词下推操作,从而实现了针对性的ROWNUM优化,避免了由于将全部含有ROWNUM分页操作的查询语句均执行谓词下推操作导致的无法执行该查询语句的问题。
在一些实施例中,在上述步骤S104中,谓词下推规则为数据普遍使用的基本谓词下推规则。约束条件可以被分为过滤条件和连接条件。也就是说,约束条件包括过滤条件和连接条件。基于此,基本谓词下推规则可以包括:
(1)连接条件下推之后会变成过滤条件,过滤条件下推之后仍然是过滤条件;
(2)如果连接条件引用了Nonnullable-side表,那么连接条件不能下推;如果连接条件只引用了Nullable-side的表,那么连接条件可以下推;
(3)如果过滤条件只引用了Nonnullable-side的表,那么这个过滤条件能够下推到表上;如果过滤条件引用了Nullable-side的表且过滤条件是严格的,那么会导致外连接消除,外连接消除之后变成内连接,过滤条件也是能下推的。
相应地,上述步骤S104可以包括以下步骤:在查询语句的约束条件为连接条件的情况下,若查询语句的连接条件仅引用Nullable-side的表,则确定查询语句符合谓词下推规则;以及在查询语句的约束条件为过滤条件的情况下,若查询语句的过滤条件仅引用Nonnullable-side的表或引用Nullable-side的表且所述过滤条件是严格的,则确定查询语句符合谓词下推规则。
在一些实施例中,上述步骤S106可以包括以下步骤:判断查询语句中是否包含ROWNUM分页操作;若不包含,则确定查询语句不满足ROWNUM优化条件;若包含,则判断查询语句中的ROWNUM分页操作是否符合谓词下推条件;若符合,则确定查询语句满足ROWNUM优化条件;若不符合,则确定查询语句不满足ROWNUM优化条件。也就是说,仅在查询语句中包含ROWNUM分页操作且查询语句中的ROWNUM分页操作符合谓词下推条件的情况下,才确定查询语句满足ROWNUM优化条件。
在一个具体实施例中,上述判断查询语句中的ROWNUM分页操作是否符合谓词下推条件的步骤还可以包括以下步骤:判断约束条件是否针对内层ROWNUM;判断约束条件是否符合预设的条件形式;若两项判断的结果均为是的情况下,确定查询语句中的ROWNUM分页操作符合预设的谓词下推条件。判断约束条件是否含有内层ROWNUM也就是说,仅在约束条件针对内层ROWNUM且约束条件符合预设的条件形式的情况下,才确定查询语句满足ROWNUM优化条件。
具体地,预设的条件形式可以包括:(内层ROWNUM)</<=(任何有理数值)或(内层ROWNUM)=1。也就是说,仅在出现为内层ROWNUM做过滤操作的谓词内容且该谓词内容在符合基本谓词下推规则的同时,符合:(内层ROWNUM)</<=(任何有理数值)或(内层ROWNUM)=1的情况下,才确定查询语句满足ROWNUM优化条件。
本发明实施例的查询优化方法,细化了判断查询语句是否满足ROWNUM优化条件的判断流程,实现了更准确地区分可谓词下推的含有ROWNUM分页操作的查询语句和不可谓词下推的含有ROWNUM分页操作的查询语句,从而提高了辨别可谓词下推的包含ROWNUM分页操作的查询语句的准确性,进而进一步保证了数据库的性能。
在一些实施例中,上述步骤S108可以包括以下步骤:对查询语句中的ROWNUM操作进行谓词下推处理。具体地,上述对查询语句中的ROWNUM操作进行谓词下推处理的步骤可以包括以下步骤:将外层的约束条件中对应内层ROWNUM的元素改为“ROWNUM”,并以and条件连接的形式,添加到内层的约束条件中。
在一个具体实施例中,查询语句为:Select * from (select *,ROWNUM as row_id from test where ROWNUM < 100) where row_id>90;其中,内层ROWNUM条件是随单条数据输出随之添加的伪列,而非表中已存在的数据列,简单的说,ROWNUM是对符合条件结果集添加的序列号。映射到外层的row_id(内层ROWNUM)条件是对查询表已有数据列做过滤操作。外层的row_id与内层ROWNUM数据值一一对应。若row_id的相关条件符合预设的条件形式,则确定row_id的相关条件符合ROWNUM优化条件,使得row_id条件等价于内层ROWNUM条件的效果,可做谓词下推操作。在本实施例中, row_id作为普通谓词条件进行过滤不符合row_id>90的数据内容,而ROWNUM作为对符合条件结果集添加的序列号,ROWNUM总是从1开始排起的,所以选出的结果中不可能没有1,而有其他大于1的值。因此,在本实施例中,row_id>90不能轻易像常规谓词一样做下推变为ROWNUM条件。
在另一个具体实施例中,查询语句为:Select * from (select *,ROWNUM asrow_id from test) where row_id <= 90;此时,row_id < 90的本质内容就是查找test中的前90个元素,符合预设的条件形式。因此,Select * from (select *,ROWNUM as row_idfrom test) where row_id <= 90;可以等价于:
Select * from (select *,ROWNUM as row_id from test where ROWNUM <=90);
此时,将可谓词下推的ROWNUM的外层条件下推,一方面减少内层扫描表的数据量,另一方面提前过滤外层处理表的数据量。
图2是根据本发明另一实施例的查询优化方法的流程图。如图2所示,本发明实施例的查询优化方法的流程可以包括以下步骤:
步骤S202,获取查询语句;
步骤S204,遍历查询语句的约束条件;
步骤S206,判断查询语句是否符合谓词下推规则,若是,则执行步骤S208,若否,则执行步骤S216;
步骤S208,判断查询语句中是否包含ROWNUM分页操作,若是,则执行步骤S210,若否,则执行步骤S218;
步骤S210,判断约束条件是否针对内层ROWNUM,若是,则执行步骤S212,若否,则执行步骤S216;
步骤S212,判断约束条件是否符合:(内层ROWNUM)</<=(任何有理数值)或(内层ROWNUM)=1,若是,则执行步骤S214,若否,则执行步骤S216;
步骤S214,执行谓词下推操作。至此,本次流程结束。
步骤S216,跳过执行谓词下推操作。至此,本次流程结束。
步骤S218,执行谓词上推操作。至此,本次流程结束。
本发明实施例的查询优化方法,适用于含有ROWNUM分页操作的查询语句的优化,通过依次判断查询语句是否符合谓词下推规则以及查询语句是否满足ROWNUM优化条件,在两个判断结果均为是的情况下,对查询语句进行ROWNUM优化处理,从而实现了利用谓词下推规则以及ROWNUM优化条件,准确地将可谓词下推的含有ROWNUM分页操作的查询语句和不可谓词下推的含有ROWNUM分页操作的查询语句区分开。另外,本发明的查询优化方法仅对可谓词下推的含有ROWNUM分页操作的查询语句执行谓词下推操作,以完成ROWNUM优化,从而针对性地优化了包含ROWNUM分页操作的查询语句,一方面减少了内层扫描表的数据量,另一方面提前过滤外层处理表的数据量,提高了查询语句的执行效率,避免了由于对全部包含ROWNUM分页操作的查询语句均不执行谓词下推操作导致的内层扫描表的数据量大、查询语句的执行效率低的问题,进而提升了数据库的性能。
进一步地,本发明实施例的查询优化方法,细化了判断查询语句是否满足ROWNUM优化条件的判断流程,实现了更准确地区分可谓词下推的含有ROWNUM分页操作的查询语句和不可谓词下推的含有ROWNUM分页操作的查询语句,从而提高了辨别可谓词下推的包含ROWNUM分页操作的查询语句的准确性,进而进一步保证了数据库的性能。
更进一步地,本发明实施例的查询优化方法对于不可谓词下推的含有ROWNUM分页操作的查询语句跳过执行谓词下推操作,从而实现了针对性的ROWNUM优化,避免了由于将全部含有ROWNUM分页操作的查询语句均执行谓词下推操作导致的无法执行该查询语句的问题。
本实施例还提供了一种机器可读存储介质和计算机设备。图3是根据本发明一个实施例的机器可读存储介质10的示意图,图4是根据本发明一个实施例的计算机设备20的示意图。
机器可读存储介质10其上存储有机器可执行程序11,机器可执行程序11被处理器执行时实现上述任一实施例的查询优化方法。
计算机设备20可以包括存储器220、处理器210及存储在存储器220上并在处理器210上运行的机器可执行程序11,并且处理器210执行机器可执行程序11时实现上述任一实施例的查询优化方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何机器可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本实施例的描述而言,机器可读存储介质10可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,机器可读存储介质10甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。
计算机设备20可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备20可以是云计算节点。计算机设备20可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备20可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
计算机设备20可以包括适于执行存储的指令的处理器210、在操作期间为所述指令的操作提供临时存储空间的存储器220。处理器210可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器220可以包括随机存取存储器(RAM)、只读存储器、闪存或任何其他合适的存储系统。
处理器210可以通过系统互连(例如PCI、PCI-Express等)连接到适于将计算机设备20连接到一个或多个I/O设备(输入/输出设备)的I/O接口(输入/输出接口)。I/O设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。I/O设备可以是计算机设备20的内置组件,或者可以是外部连接到计算设备的设备。
处理器210也可以通过系统互连链接到适于将计算机设备20连接到显示设备的显示接口。显示设备可以包括作为计算机设备20的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备20的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,NIC)可以适于通过系统互连将计算机设备20连接到网络。在一些实施例中,NIC可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN)、局域网(LAN)或因特网等等。远程设备可以通过网络连接到计算设备。
本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括附加操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (5)
1.一种查询优化方法,包括:
获取查询语句以及所述查询语句的约束条件;
根据所述查询语句的约束条件,判断所述查询语句是否符合谓词下推规则;
判断所述查询语句中是否包含ROWNUM分页操作;
判断所述约束条件是否针对内层ROWNUM;
判断所述约束条件是否符合预设的条件形式;
若四项所述判断的结果均为是的情况下,将外层的约束条件中对应内层ROWNUM的元素改为“ROWNUM”,并以and条件连接的形式,添加到内层的约束条件中;其中
所述预设的条件形式包括:
(内层ROWNUM)</<=(任何有理数值)。
2.根据权利要求1所述的查询优化方法,其中,所述约束条件包括过滤条件和连接条件;并且
根据所述查询语句的约束条件,判断所述查询语句是否符合谓词下推规则包括:
在所述查询语句的约束条件为连接条件的情况下,若所述查询语句的连接条件仅引用Nullable-side的表,则确定所述查询语句符合所述谓词下推规则;以及
在所述查询语句的约束条件为过滤条件的情况下,若所述查询语句的过滤条件仅引用Nonnullable-side的表或引用Nullable-side的表且所述过滤条件是严格的,则确定所述查询语句符合所述谓词下推规则。
3.根据权利要求1所述的查询优化方法,其中,
在所述判断所述查询语句是否符合谓词下推规则的步骤之后,所述查询优化方法还包括:
在确定所述查询语句不符合谓词下推规则的情况下,跳过执行谓词下推的步骤;并且
在所述判断所述查询语句是否满足ROWNUM优化条件的步骤之后,所述查询优化方法还包括:
在确定所述查询语句不满足ROWNUM优化条件的情况下,跳过执行谓词下推的步骤。
4.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至3任一项所述的查询优化方法。
5.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至3任一项所述的查询优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352923.9A CN117235118B (zh) | 2023-10-19 | 2023-10-19 | 一种查询优化方法、存储介质与计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352923.9A CN117235118B (zh) | 2023-10-19 | 2023-10-19 | 一种查询优化方法、存储介质与计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117235118A CN117235118A (zh) | 2023-12-15 |
CN117235118B true CN117235118B (zh) | 2024-01-26 |
Family
ID=89088034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311352923.9A Active CN117235118B (zh) | 2023-10-19 | 2023-10-19 | 一种查询优化方法、存储介质与计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235118B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265909A (zh) * | 2021-12-27 | 2022-04-01 | 北京人大金仓信息技术股份有限公司 | 关系型数据库查询优化方法、装置、电子设备及存储介质 |
CN115237947A (zh) * | 2022-07-06 | 2022-10-25 | 深圳市酷开网络科技股份有限公司 | Sql数据库的优化处理方法、装置、智能终端及介质 |
CN115905278A (zh) * | 2022-10-26 | 2023-04-04 | 北京奥星贝斯科技有限公司 | 数据查询的方法及装置 |
CN115934760A (zh) * | 2022-12-29 | 2023-04-07 | 北京人大金仓信息技术股份有限公司 | 数据库查询语句的优化方法、存储介质与计算机设备 |
CN116257552A (zh) * | 2023-02-13 | 2023-06-13 | 北京人大金仓信息技术股份有限公司 | 数据库查询语句的优化方法、存储介质与设备 |
CN116431672A (zh) * | 2023-04-18 | 2023-07-14 | 北京人大金仓信息技术股份有限公司 | 数据库操作语句的谓词逻辑优化方法、存储介质与设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965516B2 (en) * | 2014-05-21 | 2018-05-08 | Oracle International Corporation | Outer-joined and cross-joined table elimination for duplicate-insignificant queries |
-
2023
- 2023-10-19 CN CN202311352923.9A patent/CN117235118B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265909A (zh) * | 2021-12-27 | 2022-04-01 | 北京人大金仓信息技术股份有限公司 | 关系型数据库查询优化方法、装置、电子设备及存储介质 |
CN115237947A (zh) * | 2022-07-06 | 2022-10-25 | 深圳市酷开网络科技股份有限公司 | Sql数据库的优化处理方法、装置、智能终端及介质 |
CN115905278A (zh) * | 2022-10-26 | 2023-04-04 | 北京奥星贝斯科技有限公司 | 数据查询的方法及装置 |
CN115934760A (zh) * | 2022-12-29 | 2023-04-07 | 北京人大金仓信息技术股份有限公司 | 数据库查询语句的优化方法、存储介质与计算机设备 |
CN116257552A (zh) * | 2023-02-13 | 2023-06-13 | 北京人大金仓信息技术股份有限公司 | 数据库查询语句的优化方法、存储介质与设备 |
CN116431672A (zh) * | 2023-04-18 | 2023-07-14 | 北京人大金仓信息技术股份有限公司 | 数据库操作语句的谓词逻辑优化方法、存储介质与设备 |
Non-Patent Citations (1)
Title |
---|
ROWNUM深入分析及应用研究;刘光霆;蔡万铭;;电脑开发与应用(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117235118A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559554B (zh) | 一种查询语句优化方法及装置 | |
CN110688393B (zh) | 查询语句优化方法、装置、计算机设备及存储介质 | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN110688544A (zh) | 一种查询数据库的方法、设备及存储介质 | |
CN112100198B (zh) | 数据库sql语句优化方法、装置、设备及存储介质 | |
CN116257552A (zh) | 数据库查询语句的优化方法、存储介质与设备 | |
US8015178B2 (en) | System and method to determine a single SQL BOM solve | |
CN108549666B (zh) | 一种数据表的排序方法、装置、设备及存储介质 | |
CN117235118B (zh) | 一种查询优化方法、存储介质与计算机设备 | |
CN116431672A (zh) | 数据库操作语句的谓词逻辑优化方法、存储介质与设备 | |
CN116610697A (zh) | 数据库查询语句的查询方法、存储介质及设备 | |
CN117076491A (zh) | 一种数据处理方法、存储介质与设备 | |
CN115934760A (zh) | 数据库查询语句的优化方法、存储介质与计算机设备 | |
CN116719843A (zh) | 数据库系统的查询方法、存储介质及设备 | |
CN116467310A (zh) | 无效索引的无锁标记方法、存储介质和计算机设备 | |
CN115048409A (zh) | 数据库连接操作的执行方法、存储介质与计算机设备 | |
CN115658732A (zh) | 一种sql语句的优化查询方法、装置、电子设备及介质 | |
CN115455057A (zh) | 数据库连接操作的执行方法、存储介质与计算机设备 | |
CN117149821B (zh) | 一种查询优化方法、存储介质与计算机设备 | |
CN115391346A (zh) | 数据库聚合索引的生成方法、存储介质与计算机设备 | |
CN114969046A (zh) | 一种哈希连接的处理方法、存储介质与设备 | |
CN114547086A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN114637752A (zh) | 一种连接查询语句处理方法、装置、设备及存储介质 | |
CN114297233A (zh) | 数据库查询方法、装置、电子设备、介质和程序产品 | |
CN117093611B (zh) | 数据库组合索引建议处理方法、存储介质和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |