CN116610700A - 查询语句检测方法及装置、存储介质 - Google Patents
查询语句检测方法及装置、存储介质 Download PDFInfo
- Publication number
- CN116610700A CN116610700A CN202310485291.7A CN202310485291A CN116610700A CN 116610700 A CN116610700 A CN 116610700A CN 202310485291 A CN202310485291 A CN 202310485291A CN 116610700 A CN116610700 A CN 116610700A
- Authority
- CN
- China
- Prior art keywords
- query statement
- query
- relational algebra
- tuning detection
- syntax tree
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000005457 optimization Methods 0.000 claims abstract description 37
- 238000011161 development Methods 0.000 claims abstract description 14
- 230000009466 transformation Effects 0.000 claims abstract description 14
- 238000005192 partition Methods 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种查询语句调优检测方法及装置、存储介质,该方法包括:获取数据库开发平台的查询语句;生成与查询语句对应的抽象语法树;对抽象语法树进行语义分析,得到与抽象语法树对应的关系代数;基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,所述调优检测结果用于指示所述查询语句是否存在优化空间。本公开通过将查询语句转换为关系代数,得到由关系代数表达的逻辑执行计划,从而体现操作间的逻辑关系,且可以通过关系代数的运算法则对逻辑执行计划进行等效变化,从而达到更强大且更准确的调优功能,另外,由于不涉及到查询接口的统计,因此不会带来额外的系统负担。
Description
技术领域
本说明书一个或多个实施例涉及数据库领域,尤其涉及一种查询语句调优检测方法及装置、存储介质。
背景技术
随着数字化程度越来越高,数据库中存放的数据也越来越多。当执行数据查询时,准确、可靠的查询语句直接决定了数据查询结果的准确性。
目前,可以采用以下方式判断查询语句是否存在优化空间,以查询语句是否命中分区键为例:
方式一、通过抽象语法树对查询语句进行分析,从而判断查询语句是否命中分区键。
方式二、通过查询接口统计查询性能指标,从而判断查询语句是否命中分区键。
其中,通过抽象语法树对查询语句进行分析,解析效率比较低,且若叶子结点漏掉或者抽象语法树分析错误就会导致最终的结论出现错误。另外,通过抽象语法树对查询语句进行分析的方案功能有限,无法进行更深一步地调优。
其中,通过查询接口统计查询性能指标,由于数据量众多,缺少有效的收集和统计机制,可能会增加系统负担。显然,针对查询语句的调优检测方案有待优化。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种查询语句检测方法及装置、存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种查询语句检测方法,包括:
获取数据库开发平台的查询语句;
生成与所述查询语句对应的抽象语法树;
对所述抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数;
基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,所述调优检测结果用于指示所述查询语句是否存在优化空间。
根据本说明书一个或多个实施例的第二方面,提出了一种查询语句检测装置,包括:
获取模块,用于获取数据库开发平台的查询语句;
生成模块,用于生成与所述查询语句对应的抽象语法树;
转换模块,用于对所述抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数;
调优检测模块,用于基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,所述调优检测结果用于指示所述查询语句是否存在优化空间。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述的查询语句检测方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述的查询语句检测方法的步骤。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本公开通过将查询语句转换为关系代数,得到由关系代数表示的逻辑执行计划,从而体现操作间的逻辑关系,且可以通过关系代数的运算法则对逻辑执行计划进行等效变化,从而达到更强大且更准确的调优功能,另外,由于不涉及到查询接口的统计,因此不会带来额外的系统负担。
附图说明
图1是一示例性实施例提供的一种查询语句检测方法的流程图。
图2是一示例性实施例提供的一种抽象语法树的结构示意图。
图3A是一示例性实施例提供的一种关系代数示意图。
图3B是一示例性实施例提供的另一种关系代数示意图。
图4是一示例性实施例提供的另一种查询语句检测方法的流程示意图。
图5是一示例性实施例提供的另一种查询语句检测方法的流程示意图。
图6是一示例性实施例提供的另一种查询语句检测方法的流程示意图。
图7是一示例性实施例提供的另一种查询语句检测方法的流程示意图。
图8是一示例性实施例提供的一种电子设备的结构示意图。
图9是一示例性实施例提供的一种查询语句检测装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在介绍本公开提供的方案之前,先介绍一下本公开涉及到的术语。
结构化查询语言(Structured Query Language,SQL):其是专门用来查询数据的声明式编程语言。
抽象语法树(Abstract Syntax Tree,AST):一种通过SQL语法元素组成的树状结构,用来表示查询语句的逻辑关系,以用于查询优化的静态分析和语法验证的一种数据结构。
逻辑计划:其是一系列逻辑运算符的集合,使用运算符来描述查询的具体执行步骤。
关系代数:其是一种过程化查询语言。它包括一个运算的集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果。关系代数的基本运算包括:选择、投影、并、集合差、笛卡尔积和更名。
分区表:其是一种特殊的数据表,由不同的分区组成,每个分区都包含表中的一部分记录。分区表的目的是为了提高查询性能和存储数据的可维护性,将表的数据分成更小的分区,从而减少查询时间。
分区键:其是一种特殊的索引,它提供了对数据表中某一列数据的快速访问。它可以将表中的数据根据一定的规则进行分割,从而减少搜索时间,提高查询性能。
主键:其是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。
本公开提供了以下查询语句检测方法及装置、存储介质。
图1是一示例性实施例提供的一种查询语句检测方法流程图。请参考图1,该方法可以由电子设备执行,该电子设备可以独立于数据库进行部署,例如可以是专用于进行查询语句优化检测的服务器或终端设备,或者该电子设备也可以作为一个功能模块与数据库部署在同一设备上,本公开对此不作限定,后续以电子设备独立部署为例介绍本公开的方案,该方法包括:
在步骤101中,获取数据库开发平台的查询语句。
本公开中,可以预先在通用的数据库开发平台与该电子设备之间设置接口,通过该接口自动获取开发人员输入的对通用的数据库开发平台进行查询的查询语句。
在本公开中,查询语句可以包括但不限于SQL查询语句。后续实施例中以SQL查询语句为例进行说明,本领域技术人员可以理解的是,本公开的方案也可以适用于其他基于关系代数设计得到的查询语句。
在步骤102中,生成与所述查询语句对应的抽象语法树。
在一个可能的实现方式中,电子设备可以对查询语句进行词法分析和语法分析,得到分析结果,进而基于所述分析结果生成所述抽象语法树。
示例性地,该查询语句如下:
SELECT A.ID,B.ID FROM A
即需要从表格(table)A中查询标识A(A.ID)和标识B(B.ID),对该查询语句进行词法分析和语法分析后,生成的抽象语法树例如图2所示,图2中叶子节点的末端分别为A、ID、B、ID、A(表格)。
在本公开中,可以通过SQL解析器对SQL查询语句进行词法分析以及语法分析,从而对该查询语句进行建模,将其结构化成一个SQL对象,即抽象语法树。
在步骤103中,对所述抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数。
本公开中,考虑到直接基于抽象语法树对通用的数据开发平台的查询语句进行调优检测,其调优功能有限,无法更进一步地调优,且由于抽象语法树无法表现出SQL查询语句中各个子操作之间的逻辑关系,因此无法进行更进一步地调优,此外,针对抽象语法树缺乏相应的运算规则,无法确保调优前和调优后的SQL查询语句是等效的。
基于以上陈述,需要对基于抽象语法数的调优检测方案进行进一步优化。
由于SQL是基于关系代数设计出来的语言,关系代数是数据库操作的数学符号体系。因此得到抽象语法树后,可以将一个复杂的抽象语法树转化为一个关系代数,且该关系代数可以体现操作间的逻辑关系,另外可以基于关系代数的运算法则,对逻辑执行计划进行等效变化,相对于直接通过抽象语法树进行调优检测的方案而言,可以实现更强大的调优功能。且由于是基于关系代数来进行调优检测的,并不涉及到健康查询接口的统计,因此不会增加系统负担。
在一个可能的实现方式中,可以对所述抽象语法树进行语义分析,得到所述查询语句所指示的逻辑执行计划,进而确定用于表示该逻辑执行计划的一个关系代数。
以查询语句为SQL为例,关系代数记号及对应的功能例如表1所示。
表1
关系代数记号 | 功能 |
σ | 条件筛选查询 |
П | 选择列 |
× | 笛卡尔乘积 |
连接 | |
∧ | 交集 |
ρ | 重命名 |
可以理解的是,表1中每一个记号代表对数据库的一种操作,每一条SQL查询语句实际上是这些关系代数的具体实现。
本公开中,可以对较为复杂的抽象语法树进行语义分析,按照表1将复杂的抽象语法树转换为关系代数。
示例性地,待检测的查询语句为:
Select Cname From Student,Course,SC WHERE Student.Sno=SC.Sno ANDSC.Cno=Course.Cno AND Student.Sdept=’IS’;
转换得到的关系代数如下:
该关系代数可以参照图3A所示。
在步骤104中,基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,所述调优检测结果用于指示所述查询语句是否存在优化空间。
在本公开中,在将抽象语法树转换为关系代数之后,可以根据关系代数的等价变化原则,优化该关系代数的表达式,包括选择、投影、连接以及合并操作,其中,所有选择及投影操作向下移,连接及合并操作上移,保证选择与投影操作在连接与合并之前完成,从而获得优化后的关系代数表达式,其中,等价转换原则是指用相同的关系代替两个关系代数中相应的关系所得到的结果是相同的。根据该优化后的关系代数表达式可以构建查询树,其中,查询树的根节点为查询结果,叶子节点为某一关系或者裂片。示例性地,将图3A的关系代数基于等价代换原则进行转换,得到的优化后的关系代数例如图3B所示。
进一步地,可以根据优化后的关系代数,对所述查询语句进行调优检测,以得到该调优检测结果。
本公开通过将SQL查询语句转化为关系代数,从而得到由关系代数表达的逻辑执行计划,这种形式既可以体现出操作间的逻辑关系,还可以通过关系代数的运算法则对逻辑执行计划进行等效的变换,从而可以达成更强大且准确的调优功能。
在一个示例中,可以通过本公开的调优检测方法检测通用的数据库开发平台的查询语句是否命中指定键和/或命中指定数据库表。
其中,指定键包括但不限于分区键和主键中的至少一项。
在一个示例中,电子设备可以基于优化后的关系代数,确定查询操作所需要查询的数据库表,具体地,可以根据“where”条件所指示的table,确定该查询操作所查询的数据库表。
进一步地,电子设备可以基于所述优化后的关系代数中是否包括该数据库表的所有指定键,得到调优检测结果。和/或,可以基于所述查询操作所查询的数据库表的索引与所述指定数据库表的索引是否一致,得到所述调优检测结果。
示例性地,如果转换后的关系代数中包括该数据库表对应的所有分区键和/或主键,则确定调优检测结果为查询语句不存在优化空间。如果转换后的关系代数中未包括所有分区键和/或主键,则确定调优检测结果为查询语句存在优化空间。
示例性地,如果转换后的关系代数中该数据库表的索引与指定数据库表的索引一致,则确定调优检测结果为查询语句不存在优化空间。如果该数据库表的索引与指定数据库表的索引不一致,则确定调优检测结果为查询语句存在优化空间。
示例性地,如果该数据库表包括至少一个分区键和/或主键,但优化后的关系代数未命中任意分区键和/或主键,则可以确定调优检测结果为查询语句存在优化空间。
示例性地,如果该数据库表是有索引的,但是优化后的关系代数未命中索引,则可以确定调优检测结果为查询语句存在优化空间。
以上仅为示例性说明,本公开的调优检测方法,还可以适用于其他调优检测场景,本公开对此不作限定。
上述实施例中,本公开可以将数据库内核实现场景下的关系代数等效变换的运算规则,用于通用的数据库开发平台场景下,扩展了关系代数的应用场景。通过将查询语句转换为关系代数,得到由关系代数表达的逻辑执行计划,从而体现操作间的逻辑关系,且可以通过关系代数的运算法则对逻辑执行计划进行等效变换,从而达到更强大且更准确的调优功能,另外,由于不涉及到查询接口的统计,因此不会带来额外的系统负担。
在一些可选实施例中,参照图4所示,图4是基于图1示出的另一种查询语句检测方法,该方法可以由电子设备执行,上述方法还可以包括:
在步骤105中,输出所述调优检测结果。
上述实施例中,可以直接输出调优检测结果,以便开发人员确定查询语句是否存在优化空间,提高了查询语句调优检测的效率,可用性高。
在一些可选实施例中,参照图5所示,图5是基于图1示出的另一种查询语句检测方法,该方法可以由电子设备执行,上述方法还可以包括:
在步骤106中,如果所述调优检测结果指示所述查询语句存在优化空间,输出优化建议信息。
在本公开实施例中,如果调优检测结果指示查询语句存在优化空间,则可以自动输出该查询语句的优化建议信息,该优化建议信息包括但不限于存在优化空间的具体查询语句,和/或,该查询语句未命中的指定键、索引等。
示例性地,比如某段查询语句未命中分区键#1,则可以自动输出该段查询语句,并标注其未命中的分区键#1。
需要说明的是,步骤106可以在步骤104之后执行,也可以在步骤105之后执行,本公开对此不作限定。
上述实施例中,可以为开发人员快速提供优化建议,以便对查询语句进行优化,实现简便,可用性高。
在一些可选实施例中,参照图6所示,图6是一示例性实施例提供的一种查询语句检测方法流程图,该方法可以由电子设备执行,上述方法可以包括:
在步骤601中,获取数据库开发平台的查询语句。
在步骤602中,对所述查询语句进行词法分析。
在步骤603中,对所述查询语句进行语法分析。
在步骤604中,基于上述分析结果,生成与所述查询语句对应的抽象语法树。
在步骤605中,对抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数。
本步骤中,可以对所述抽象语法树进行语义分析,得到所述查询语句所指示的逻辑执行计划,进而确定能够用于表示该逻辑执行计划的一个关系代数。
在步骤606中,根据等价变换原则,对所述关系代数进行优化,得到优化后的关系代数。
在步骤607中,基于所述优化后的关系代数,对所述查询语句进行调优检测,以得到所述调优检测结果。
该调优检测结果可以用于指示查询语句是否存在优化空间。
在一个示例中,调优检测结果还用于指示以下至少一项:
是否命中指定键,所述指定键包括分区键和主键中的至少一项;
是否命中指定数据库表。
在步骤608中,如果所述调优检测结果指示所述查询语句存在优化空间,输出优化建议信息。
本步骤中,如果所述调优检测结果指示查询语句存在优化空间,可以提供查询语句的优化建议信息,包括但不限于输出存在优化空间的查询语句,和/或,未命中的指定键、索引。
上述实施例中,通过将查询语句转换为关系代数,得到由关系代数表达的逻辑执行计划,从而体现操作间的逻辑关系,且可以通过关系代数的运算法则对逻辑执行计划进行等效变化,从而达到更强大且更准确的调优功能,另外,由于不涉及到查询接口的统计,因此不会带来额外的系统负担。
对于上述实施例进一步举例说明如下。
在一些可选实施例中,参照图7所示,图7是一示例性实施例提供的一种查询语句检测方法流程图,该方法可以由电子设备执行,上述方法可以包括:
在步骤701中,获取数据库开发平台的查询语句。
在步骤702中,对所述查询语句进行词法分析。
在步骤703中,对所述查询语句进行语法分析。
在步骤704中,基于上述分析结果,生成与所述查询语句对应的抽象语法树。
在步骤705中,对抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数。
在步骤706中,根据等价变换原则,对所述关系代数进行优化,得到优化后的关系代数。
在步骤707中,基于所述优化后的关系代数,确定查询操作所查询的数据库表。
在步骤708中,基于所述优化后的关系代数中是否包括所述数据库表的所述分区键,得到所述调优检测结果。
本公开中,可以遍历优化后的关系代数,以便确定其中是否包括数据库表的所有所述分区键,从而得到调优检测结果。
在步骤709中,如果所述调优检测结果指示所述查询语句未命中分区键,输出优化建议信息。
本步骤中,可以提供查询语句的优化建议信息,包括但不限于输出该未命中分区键的查询语句,和/或,该查询语句未命中的分区键。
上述实施例中,在抽象语法树的基础上进一步进行语义分析,得到能够准确体现数据库查询操作的数学符号体现,相比于抽象语法树的分析结果更加准确、高效。通过将抽象语法树转换为关系代数,体现操作间的逻辑关系,进而针对关系代数进行等价变换,实现更强大的优化检测功能。且可以根据检测目标,自动、灵活地对查询语句进行优化检测,减低了优化检测的时延,解析效率高,最终得到的调优检测结果准确度高。另外,由于不涉及到查询接口的统计,因此不会带来额外的系统负担。
图8是一示例性实施例提供的一种电子设备的示意结构图,该电子设备可以为数据服务器,本公开对此不作限定。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他任务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图9,查询语句检测装置可以应用于如图8所示的设备中,以实现本说明书的技术方案。其中,该查询语句检测装置可以包括:
获取模块901,用于获取数据库开发平台的查询语句;
生成模块902,用于生成与所述查询语句对应的抽象语法树;
转换模块903,用于对所述抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数;
调优检测模块904,用于基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,所述调优检测结果用于指示所述查询语句是否存在优化空间。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (11)
1.一种查询语句调优检测方法,其特征在于,包括:
获取数据库开发平台的查询语句;
生成与所述查询语句对应的抽象语法树;
对所述抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数;
基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,所述调优检测结果用于指示所述查询语句是否存在优化空间。
2.根据权利要求1所述的方法,其特征在于,所述对所述抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数,包括:
对所述抽象语法树进行语义分析,得到所述查询语句的逻辑执行计划;
确定用于表示所述逻辑执行计划的所述关系代数。
3.根据权利要求1所述的方法,其特征在于,所述基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,包括:
基于等价代换原则,对所述关系代数进行优化,得到优化后的关系代数;
基于所述优化后的关系代数,对所述查询语句进行调优检测,以得到所述调优检测结果。
4.根据权利要求1所述的方法,其特征在于,所述调优检测结果还用于指示以下至少一项:
是否命中指定键,所述指定键包括分区键和主键中的至少一项;
是否命中指定数据库表。
5.根据权利要求4所述的方法,其特征在于,所述基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,包括:
基于优化后的关系代数,确定所述查询操作所查询的数据库表;
基于所述优化后的关系代数中是否包括所述数据库表的所述指定键,得到所述调优检测结果;和/或,
基于所述查询操作所查询的数据库表的索引与所述指定数据库表的索引是否一致,得到所述调优检测结果。
6.根据权利要求1所述的方法,其特征在于,所述生成与所述查询语句对应的抽象语法树,包括:
对所述查询语句进行词法分析和语法分析,得到分析结果;
基于所述分析结果生成所述抽象语法树。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
输出所述调优检测结果。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
如果所述调优检测结果指示所述查询语句存在优化空间,输出优化建议信息。
9.一种查询语句调优检测装置,其特征在于,包括:
获取模块,用于获取数据库开发平台的查询语句;
生成模块,用于生成与所述查询语句对应的抽象语法树;
转换模块,用于对所述抽象语法树进行语义分析,得到与所述抽象语法树对应的关系代数;
调优检测模块,用于基于所述关系代数,对所述查询语句所进行的查询操作进行等价变换,以得到调优检测结果,所述调优检测结果用于指示所述查询语句是否存在优化空间。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-8中任一项所述的查询语句调优检测方法。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-8中任一项所述的查询语句调优检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310485291.7A CN116610700A (zh) | 2023-04-28 | 2023-04-28 | 查询语句检测方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310485291.7A CN116610700A (zh) | 2023-04-28 | 2023-04-28 | 查询语句检测方法及装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116610700A true CN116610700A (zh) | 2023-08-18 |
Family
ID=87679146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310485291.7A Pending CN116610700A (zh) | 2023-04-28 | 2023-04-28 | 查询语句检测方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116610700A (zh) |
-
2023
- 2023-04-28 CN CN202310485291.7A patent/CN116610700A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016188279A1 (zh) | 一种故障谱的生成、基于故障谱的检测方法和装置 | |
US20140122455A1 (en) | Systems and Methods for Intelligent Parallel Searching | |
CN105224452B (zh) | 一种针对科学计算程序静态分析性能的预测代价优化方法 | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US9411803B2 (en) | Responding to natural language queries | |
WO2019169858A1 (zh) | 一种基于搜索引擎技术的数据分析方法及系统 | |
CN109471889B (zh) | 报表加速方法、系统、计算机设备和存储介质 | |
US10915535B2 (en) | Optimizations for a behavior analysis engine | |
CN110019384B (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
CN108710662B (zh) | 语言转换方法和装置、存储介质、数据查询系统和方法 | |
US11288266B2 (en) | Candidate projection enumeration based query response generation | |
US8650180B2 (en) | Efficient optimization over uncertain data | |
CN113535817B (zh) | 特征宽表生成及业务处理模型的训练方法和装置 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN114116767A (zh) | 数据库sql查询语句转换方法及装置 | |
CN112925720A (zh) | 一种软件sql测试方法、装置、存储介质及系统 | |
CN110580170B (zh) | 软件性能风险的识别方法及装置 | |
CN116610694A (zh) | 一种基于列和访问语句关系的规则校验方法和系统 | |
CN116610700A (zh) | 查询语句检测方法及装置、存储介质 | |
CN115658680A (zh) | 数据存储方法、数据查询方法和相关装置 | |
US20140280110A1 (en) | Requests for source code text | |
US11556531B2 (en) | Crux detection in search definitions | |
US9477927B2 (en) | Automatic test generation for decision table based rules | |
Adnan et al. | Towards Improved Data Analytics Through Usability Enhancement of Unstructured Big Data | |
Liu et al. | Toward a better alignment between the research and practice of code search engines |
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 |