CN110555035A - 一种对查询语句进行优化的方法、装置 - Google Patents
一种对查询语句进行优化的方法、装置 Download PDFInfo
- Publication number
- CN110555035A CN110555035A CN201810550487.9A CN201810550487A CN110555035A CN 110555035 A CN110555035 A CN 110555035A CN 201810550487 A CN201810550487 A CN 201810550487A CN 110555035 A CN110555035 A CN 110555035A
- Authority
- CN
- China
- Prior art keywords
- query statement
- query
- input table
- input
- table set
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000005457 optimization Methods 0.000 claims abstract description 66
- 230000002776 aggregation Effects 0.000 claims abstract description 30
- 238000004220 aggregation Methods 0.000 claims abstract description 30
- 238000001914 filtration Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 7
- 238000001514 detection method Methods 0.000 abstract 1
- 239000000047 product Substances 0.000 description 18
- 238000004458 analytical method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 241000282326 Felis catus Species 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000006227 byproduct Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种对查询语句进行优化的方法、装置,该方法包括:获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。通过使用该方法,能够准确确定出任意两个或多个查询语句是否为相似的查询语句,无需考虑查询语句的格式化程度以及计算逻辑的实现方式,并且可对聚合、关联等复杂的查询语句进行相似语句的检测和任务优化,能够有效简化查询语句的任务优化过程,提高查询语句的任务优化的精度,以及扩展查询语句的任务优化的范围。
Description
技术领域
本申请涉及数据库领域,具体涉及一种对查询语句进行优化的方法。本申请同时涉及一种数据处理方法、一种对查询语句进行优化的装置以及一种电子设备。
背景技术
随着互联网技术和大数据技术(Big Data)的不断发展,越来越多的数据被组织到数据仓库中,随之而增加的计算任务也给数据仓库系统的计算能力提出了更高的要求,因此,任务优化成为缓解计算压力的重要方法之一。例如,在数据仓库系统中,与数据仓库技术(Extract-Transform-Load,英文简称ETL)有关的SQL任务或类SQL任务占整个数据仓库计算任务的90%以上,这些SQL任务或类SQL任务中存在结构相似、数据共享的公共部分,对这些SQL任务或类SQL任务进行优化,可提高查询效率,有助于提升数据仓库系统的稳定性,缩短计算任务(比如用于对业务的分析决策提供数据支持的离线报表)的产出时间,并降低计算成本。
现有的对存在结构相似、数据共享的公共部分的SQL任务或类SQL任务的优化方法通常为以下两种方法:
方法一、通过文本相似性原理对SQL脚本语言进行比对,查找文本内容较为一致的SQL语句或类SQL语句,并检测出公共部分进行任务优化;
方法二、通过将SQL语句转化成抽象语法树的形式对简单的SQL语句或类SQL语句进行比较,查找公共部分进行任务优化。
然而,上述方法存在以下不足:
方法一中,不同的SQL语句或类SQL语句,其格式化程度以及计算逻辑的实现方式均不同,因此通过文本相似性原理进行比对,对于格式化程度不同、以及计算逻辑差异较大的SQL语句或类SQL语句,无法准确判断其是否为相似的SQL语句或类SQL语句,因此进行任务优化的精度较低。
方法二基于抽象语法树的方法仅可对简单的SQL语句或类SQL语句进行比较,无法处理聚合、关联等复杂的SQL语句,针对SQL语句或类SQL语句进行任务优化的范围较窄。
发明内容
本申请提供一种对查询语句进行优化的方法,以解决现有对SQL语句或类SQL语句进行任务优化的精度较低、范围较窄的问题。本申请另外提供一种数据处理方法、一种对查询语句进行优化的装置以及一种电子设备。
本申请提供一种对查询语句进行优化的方法,该方法包括:
获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。
可选的,所述获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合,包括:
将所述第一查询语句解析为第一抽象语法树结构,将所述第二查询语句解析为第二抽象语法树结构;
根据所述第一抽象语法树结构获取所述第一输入表集合,根据所述第二抽象语法树结构获取所述第二输入表集合。
可选的,所述根据所述第一抽象语法树结构获取所述第一输入表集合,包括:
遍历所述第一抽象语法树结构,从所述第一抽象语法树结构的子节点中确定所述第一查询语句对应的输入表,所述第一查询语句对应的输入表组成所述第一输入表集合;
对应的,所述根据所述第二抽象语法树结构获取所述第二输入表集合,包括:
遍历所述第二抽象语法树结构,从所述第二抽象语法树结构的子节点中确定所述第二查询语句对应的输入表,所述第二查询语句对应的输入表组成所述第二输入表集合。
可选的,所述第一输入表集合包括一个第一输入表,所述第二输入表集合包括一个第二输入表,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一输入表与所述第二输入表的名称一致,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
可选的,所述第一输入表和所述第二输入表均为数据量不低于预定阈值的输入表。
可选的,所述第一查询语句和所述第二查询语句均用于对查询结果进行过滤,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
对所述第一查询语句和所述第二查询语句进行合并,实现对输入表的一读多写优化。
可选的,所述第一查询语句和所述第二查询语句均用于对查询结果进行聚合,所述第一查询语句的聚合维度与所述第二查询语句的聚合维度具有包含关系,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
将聚合维度数量较多的查询语句的输出表作为聚合维度数量较少的查询语句的输入表。可选的,所述第一输入表集合包含至少两个第一输入表,所述至少两个第一输入表中至少有一个第一输入表为第一主事实表,所述第二输入表集合包含至少两个第二输入表,所述至少两个第二输入表中至少有一个第二输入表为第二主事实表,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一主事实表的名称与所述第二主事实表的名称相同,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
可选的,所述第一主事实表与所述第二主事实表均为数据量不低于预定阈值的输入表。
可选的,所述至少两个第一输入表中至少有一个第一输入表为第一维度表,所述第一维度表与所述第一主事实表具有关联关系;所述至少两个第二输入表中至少有一个第二输入表为第二维度表,所述第二维度表与所述第二主事实表具有关联关系,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
将所述第一维度表所对应的查询语句添加至所述第二查询语句中,实现所述第一查询语句与所述第二查询语句的合并;
或者
将所述第二维度表所对应的查询语句添加至所述第一查询语句中,实现所述第一查询语句与所述第二查询语句的合并。
可选的,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一输入表集合包含所述第二输入表集合的所有输入表,且所述第一查询语句的子查询语句与所述第二查询语句的子查询语句相同,则确定所述第一查询语句与所述第二查询语句为相似查询语句。
可选的,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
保留所述第二查询语句,将所述第一查询语句包含的第二查询语句的子查询语句替换为第二查询语句的输出表。
可选的,所述第二查询语句的数量至少为一个。
本申请还提供一种数据处理方法,该方法包括:
获取第一查询语句和第二查询语句;
获取所述第一查询语句对应的第一输入表集合和所述第二查询语句对应的第二输入表集合;
根据所述第一输入表集合和所述第二输入表集合,计算所述第一查询语句与所述第二查询语句的相似度;
如果确定所述相似度达到预设阈值,对所述第一查询语句和所述第二查询语句进行合并。
本申请还提供一种对查询语句进行优化的装置,该装置包括:
输入表集合获取单元,用于获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
相似查询语句判断单元,用于根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
任务优化单元,用于在判断结果为是时,对所述第一查询语句和所述第二查询语句进行任务优化。
本申请还提供一种电子设备,该电子设备包括:
处理器;以及
存储器,用于存储一种用于对查询语句进行优化的程序,该设备通电并通过所述处理器运行所述用于对查询语句进行优化的程序后,执行下述步骤:
获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。
与现有技术相比,本申请具有以下优点:
本申请提供的对查询语句进行优化的方法,通过获取查询语句所对应的输入表集合,并根据不同查询语句所对应的输入表集合判断不同查询语句是否为相似的查询语句,对确定的相似查询语句进行任务优化。该方法通过确定不同查询语句分别对应的不同的输入表集合之间的关系,能够准确确定出任意两个或多个查询语句是否为相似的查询语句,无需考虑查询语句的格式化程度以及计算逻辑的实现方式,并且可对聚合、关联等复杂的查询语句进行相似语句的检测和任务优化,能够有效简化查询语句的任务优化过程,提高查询语句的任务优化的精度,以及扩展查询语句的任务优化的范围。
附图说明
图1是本申请第一实施例提供的方法流程图;
图2是本申请第二实施例提供的方法流程图;
图3是本申请第三实施例提供的装置单元框图;
图4是本申请第四实施例提供的电子设备示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种对查询语句进行优化的方法、一种对查询语句进行优化的装置以及一种计算机可读取存储介质,以下提供实施例对所述方法、装置以及计算机可读取存储介质进行详细说明。
在企业级的离线数据处理中,诸多公司需要维护一批数量巨大、结构复杂、运行耗时的查询语句来完成大数据分析任务,因此需定期处理大量的查询语句,这些查询语句的数量多、结构复杂,并且部分查询语句因存在结构相似、功能重合的公共部分而使其语句变动较小,如何在海量的查询语句中检测出存在结构相似、功能重合的公共部分的查询语句,并对该查询语句进行任务优化,已成为现阶段急需处理的问题。本申请第一实施例提供一种对查询语句进行优化的方法,该方法主要用于处理上述问题。
请参考图1理解该实施例,如图1所示,所述方法包括如下步骤:
S101,获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合。
SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名,它提供操作关系数据库的接口,实现在逻辑层上的数据处理,所有的SQL语句都相当于对数据库进行操作的指令,其使用查询优化器进行处理后,以最有效的方式访问指定数据,它以组为单位而不是单个的单元处理数据集,提供数据的自动导航功能,独立地提供了复杂的并且具有强大功能的操作语句。
在与数据仓库相关的数据计算中,最常用的操作是查询操作,SQL语句所对应的查询语句由SELECT语句组成,SELECT语句从一个数据表或者多个数据表中查找目标数据,其后可加关键字或从句,以在查询操作中实现不同功能,例如,FROM从句后的内容代表查询的目标数据所处在的数据表,该数据表为查询语句对应的输入表,该输入表可为一个或多个,再如WHERE从句后的内容代表用来过滤查询结果的条件。
第一查询语句可作为需要进行任务优化处理的任意一个或多个查询语句,第二查询语句指的是可用于与第一查询语句进行分析判断从而确定其是否能够与第一查询语句进行任务优化处理的一个或多个查询语句。本实施例中,第一查询语句的数量为一个,第二查询语句的数量至少为一个,可将多个查询语句与一个查询语句进行分析判断,实现多个查询语句的任务优化。
所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合。
本步骤的作用在于获取第一查询语句对应的输入表所组成的集合,以及获取第二查询语句对应的输入表所组成的集合,将上述获得的集合作为本方法实现后续步骤的基础条件。
本实施例中,通过查询语句对应的抽象语法树结构获取第一查询语句对应的输入表所组成的集合,以及获取第二查询语句对应的输入表所组成的集合。具体为:
首先,将所述第一查询语句解析为第一抽象语法树结构,将所述第二查询语句解析为第二抽象语法树结构。
抽象语法树(Abstract Syntax Tree,英文缩写AST)是源码简化的句法表示,它删除了所有句法杂志,集中构建输入的结构,并用层次化的数据结构方式显示出来,通过抽象语法树,可保留对后续分析和翻译有用的信息,过滤掉无用的信息。
所述第一抽象语法树和所述第二抽象语法树根据语言识别工具ANTLR(英文全称Another Tool for Language Recognition)根据语法规则中指定的抽象语法树规则而生成,ANTLR可以根据输入的文本内容自动生成语法树并进行可视化的显示,例如根据输入的第一查询语句生成第一抽象语法树。该过程具体为:ANTLR将词法分析器、语法分析器、树分析器结合起来,可定义识别字符流的词法规则和用于解释标记(Token)流的语法分析规则,并根据提供的语法文件自动生成相应的词法/语法分析器,可利用该词法/语法分析器将输入的文本进行编译,并转换成抽象的语法树的形式。每个查询语句可对应地解析为一个抽象语法树,本实施例中,可通过上述方法将第一查询语句解析为第一抽象语法树结构,将第二查询语句解析为第二抽象语法树结构。
其次,根据所述第一抽象语法树结构获取所述第一输入表集合,根据所述第二抽象语法树结构获取所述第二输入表集合。
在生成抽象语法树之后,通过遍历该抽象语法树,可完成语义分析和中间代码生成。本实施例中,在获取所述第一抽象语法树和所述第二抽象语法树之后,使用树分析器遍历所述第一抽象语法树结构,从所述第一抽象语法树结构的子节点中确定所述第一查询语句对应的输入表,所述第一查询语句对应的输入表组成所述第一输入表集合;同样的,遍历所述第二抽象语法树结构,从所述第二抽象语法树结构的子节点中确定所述第二查询语句对应的输入表,所述第二查询语句对应的输入表组成所述第二输入表集合。
S102,根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句。
在经上述步骤获取第一输入表集合和第二输入表集合之后,本步骤用于根据上述获得的第一输入表集合和第二输入表集合,判断与该第一输入表集合相对应的第一查询语句与该第二输入表集合对应的第二查询语句是否为相似查询语句。
相似查询语句指的是两个或两个以上的查询语句所对应的查询任务存在数据共享、结构相似的公共部分,本实施例中,该公共部分指的是不同查询语句在对目标数据进行查询时,不同查询语句所对应的输入表集合所包含的输入表存在部分重合、相同或完全包含的关系。
本实施例中,包括以下三种模式判断第一查询语句与第二查询语句是否为相似查询语句:
模式一:第一输入表集合包括一个第一输入表,第二输入表集合包括一个第二输入表,即第一查询语句对应的输入表为单表,第二查询语句对应的输入表也为单表,所述根据所述第一输入表集合和所述第二输入表集合,判断第一查询语句与第二查询语句是否为相似查询语句具体为:如果所述第一输入表与所述第二输入表的名称一致,则确定所述第一查询语句和所述第二查询语句为相似查询语句。输入表的名称一致,则可确定第一查询语句所对应的输入表和第二查询语句所对应的输入表为同一输入表。
本实施例中,所述第一输入表和所述第二输入表均为数据量不低于预定阈值的输入表,即,只有当输入表的数据量达到或超过预定阈值,才有将该输入表作为判断第一查询语句和第二查询语句是否为相似查询语句的必要,其原因在于,对查询语句进行优化,实质为对输入表的查询情况进行优化,对具有大数据量的输入表进行查询所消耗的计算资源远大于对小数据量的输入表进行查询所消耗的计算资源,因此,只有对具有大数据量的输入表所对应的查询语句进行优化,才能起到减少计算资源消耗的优化效果,所以本实施例中将第一输入表和第二输入表的数据量均不低于预定阈值作为基础条件。
此处预定阈值根据实际使用场景进行预先设定,例如,可根据当前场景下实际需要执行的查询语句的数量进行灵活设定,并且对数据量达到或超过预定阈值的输入表预先进行打标,使其能够被直接识别出,从而在最短时间内确定其对应的查询语句可用本实施例提供的方法进行优化处理。
模式二:第一输入表集合包含至少两个第一输入表,所述至少两个第一输入表中至少有一个第一输入表为第一主事实表,所述第二输入表集合包含至少两个第二输入表,所述至少两个第二输入表中至少有一个第二输入表为第二主事实表,所述至少两个第一输入表中至少有一个第一输入表为第一维度表,所述第一维度表与所述第一主事实表具有关联关系;所述至少两个第二输入表中至少有一个第二输入表为第二维度表,所述第二维度表与所述第二主事实表具有关联关系。
每个数据仓库都包含一个或者多个事实表。事实表可能包含业务销售数据,如现金登记事务所产生的数据,事实表通常包含大量的行,其主要特点是包含数字数据(事实),并且这些数字数据可以进行汇总,以作为分析数据提供给用户。每个事实表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,而维度表包含事实记录的特性。以电子商务系统为例,电子商务系统中的核心因素为用户、商品和交易订单信息,交易订单信息存储于交易订单数据表中,该表保留买家、商品名称、交易时间、交易数量、交易金额等交易信息。在离线分析中,在按商品种类对交易情况进行分析时,需要将交易订单数据表与商品种类表相关联,从而在交易订单信息中添加商品种类信息。此处的交易订单数据表就是事实表,商品种类表就是维度表。
所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,具体为:如果所述第一主事实表的名称与所述第二主事实表的名称相同,则确定所述第一查询语句和所述第二查询语句为相似查询语句。该模式中,第一输入表集合中包含具有关联关系的多个表,例如一个主事实表与多个维度表,第二输入表集合中同样包含具有关联关系的多个表,也为一个主事实表与多个维度表。在该种情况下,只需确定第一输入表中的第一主事实表与第二输入表中的第二主事实表是否为相同的输入表,即可确定第一查询语句和第二查询语句是否为相似查询语句。
与上述模式一中的第一输入表和所述第二输入表均为数据量不低于预定阈值的输入表相同,本实施例中,所述第一主事实表与所述第二主事实表均为数据量不低于预定阈值的输入表,只有对数据量达到或超过预定阈值的主事实表所对应的查询语句进行优化,才能达到减少计算资源消耗的优化效果。
模式三:第一查询语句包含子查询语句,第二查询语句也包含子查询语句,该模式根据第一输入表集合与第二输入表集合之间的包含关系以及第一查询语句所包含的子查询语句与第二查询语句的所包含的子查询语句,判断第一查询语句与第二查询语句是否为相似查询语句,具体为:如果所述第一输入表集合包含所述第二输入表集合的所有输入表,且所述第一查询语句的子查询语句与所述第二查询语句的子查询语句相同,则确定所述第一查询语句与所述第二查询语句为相似查询语句。
在SQL语句或类SQL语句中,通过关系操作符或者聚合函数,查询操作可以嵌套使用,即一个查询操作可以在另一个查询操作中使用,当A查询操作的结果是B查询操作的条件时,则称A为B的子查询,B称为A的主查询,子查询优先于主查询进行执行,上述子查询又称嵌套查询。例如,在一个SQL查询语句所对应的抽象语法树结构中,一个QUERY所引领的SUBQUERY子树即为其对应的子查询。
S103,如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。
在上述步骤完成对第一查询语句与第二查询语句是否为相似查询语句的判断之后,本步骤用于根据判断结果对第一查询语句和第二查询语句按照预定的优化方法进行任务优化。
本实施例中,对查询语句进行任务优化,核心目的在于减少对查询语句所对应的输入表的查询次数。围绕该核心目的,本实施例结合上述步骤S102的三种模式分别预先设定有如下优化方法:
针对模式一的第一查询语句对应的输入表和第二查询语句对应的输入表均为单表,该模式可分为两种情况:
情况一、第一查询语句和第二查询语句均用于按查询条件对查询结果进行过滤,即,第一查询语句和第二查询语句都对应于简单多虑任务,例如查询语句select column1[,column2...]from table_name where conditions所表达的意思是获取table_name表中满足where条件的行;查询语句Select order_id,buyer_id,product_id,order_time,price_from_t_order_where_order_time>='2018-05-01 00:00:00'and order_time<'2018-05-02 00:00:00',其表达的意思是从t_order表中获取2018年5月1日的交易订单数据。
在该种情况下对第一查询语句和所述第二查询语句进行任务优化的方式为:对所述第一查询语句和所述第二查询语句进行合并,实现对输入表的一读多写优化。本实施例中采用多路输出(Multi Insert)或者动态分区(Dynamic Partition)等方式将所述第一查询语句和所述第二查询语句进行任务合并。
情况二、第一查询语句和第二查询语句均用于对查询结果进行聚合,第一查询语句的聚合维度与第二查询语句的聚合维度具有包含关系,即第一查询语句和第二查询语句都对应简单聚合任务,其可用于将相同列值所在的行映射到一起,形成行集合,例如,查询语句select product_id,count(1)as order_cnt from t_order where order_time>='2018-05-01 00:00:00'and order_time<'2018-05-02 00:00:00'group by product_id,其表达的意思是:从t_order表中计算出2018年5月1日的商品(product_id)的订单量,该查询语句对应聚合任务。
在该种情况下,对所述第一查询语句和所述第二查询语句进行任务优化的方式为:将聚合维度数量较多的查询语句的输出表作为聚合维度数量较少的查询语句的输入表。
例如,第一查询语句为select buyer_id,product_id,sum(1)as order_cnt fromt_order,group by buyer_id,product_id,该查询语句表达的意思为:统计买家(buyer_id)购买商品(product_id)的订单数(order_cnt),聚合维度有2个,分别为buyer_id和product_id;第二查询语句为select buyer_id,sum(1)as order_cnt from t_order,group by buyer_id,该查询语句表达的意思为:统计买家(buyer_id)总的订单数(order_cnt),其聚合维度只有1个,为buyer_id。
按本实施例提供的任务优化方法,首先运行聚合维度较多的第一查询语句,将统计结果写入表t_order_tmp;将第二查询语句修改为select buyer_id,sum(order_cnt)asorder_cnt from t_order_tmp group by buyer_id,将第一查询语句的输出表作为第二查询语句的输入表。
假设上述t_order表中有m行数据,则分别执行第一查询语句所对应的任务和第二查询语句所对应的任务时,需要读取的数据为2m行;按照本申请的优化方法,首先执行第一查询语句对应的任务,读取的数据为m行,然后执行修改后的第二查询语句对应的任务,读取的数据为n行(n<m),m+n<2m,因此,可实现读取最小数据的优化效果。
针对模式二的第一输入表集合中包含具有关联关系的多个表,例如一个主事实表与多个维度表,第二输入表集合中同样包含具有关联关系的多个表,也为一个主事实表与多个维度表,上述对第一查询语句和第二查询语句进行任务优化的方式具体为:将第一输入表集合包括的被关联的第一维度表所对应的查询语句添加至第二查询语句中,以此对第一查询语句与第二查询语句进行合并,实现查询操作中的一读多写优化;或者将第二维度表所对应的查询语句添加至第一查询语句中,实现所述第一查询语句与所述第二查询语句的合并。
针对模式三的第一输入表集合包含第二输入表集合的所有输入表,且第一查询语句的子查询语句与第二查询语句的子查询语句相同,对第一查询语句和第二查询语句进行任务优化的方式具体为:保留第二查询语句,将第一查询语句包含的第二查询语句的子查询语句替换为第二查询语句的输出表。
例如,第一查询语句为select product_cate,count(1)as order_cnt from(select o.order_id,o.buyer_id,o.product_id,o.order_time,o.price,p.product_cate from t_order o join t_product p on o.product_id=p.product_id)t,group byproduct_cate;第二查询语句为select o.order_id,o.buyer_id,o.product_id,o.order_time,o.price,p.product_cate from t_order o join t_product p on o.product_id=p.product_id。
按原有方法分别运行第一查询语言和第二查询语言,第一查询语言完成1次join(关联)操作和1次group by(聚合)操作,第二查询语言完成1次join操作,共完成2次join操作和1次group by操作。
按本实施例提供的任务优化方法,先运行第二查询语句,将计算结果写入表t_order_tmp,完成1次join操作;将第一查询语句修改为select product_cate,count(1)asorder_cnt from t_order_tmp t group by product_cate,完成1次group by操作,执行上述两个查询语句,共完成1次join操作和1次group by操作,实现简化操作的效果。
本实施例提供的上述对查询语句进行优化的方法,通过获取查询语句所对应的输入表集合,并根据不同查询语句所对应的输入表集合判断不同查询语句是否为相似的查询语句,对确定的相似查询语句进行任务优化。该方法通过确定不同查询语句分别对应的不同的输入表集合之间的关系,能够准确确定出任意两个或多个查询语句是否为相似的查询语句,无需考虑查询语句的格式化程度以及计算逻辑的实现方式,并且可对聚合、关联等复杂的查询语句进行相似语句的检测和任务优化,能够有效简化查询语句的任务优化过程,提高查询语句的任务优化的精度,以及扩展查询语句的任务优化的范围。
本申请第二实施例提供一种数据处理方法,该实施例与上述第一实施例具有相同的技术主题。如图2所示,该实施例提供的方法包括如下步骤:
S201,获取第一查询语句和第二查询语句。
本步骤用于确定第一查询语句和第二查询语句。有关第一查询语句以及第二查询语句的说明请参考上述第一实施例,在此不再赘述。
S202,获取所述第一查询语句对应的第一输入表集合和所述第二查询语句对应的第二输入表集合。
请参照上述第一实施例的步骤S101理解本步骤。
S203,根据所述第一输入表集合和所述第二输入表集合,计算所述第一查询语句与所述第二查询语句的相似度。
本步骤用于根据上述第一输入表集合和第二输入表集合计算第一查询语句和第二查询语句的相似度,以此确定第一查询语句和第二查询语句是否为相似查询语句。
计算第一查询语句和第二查询语句的相似度,实质为确定第一查询语句所对应的查询任务与第二查询语句所对应的查询任务存在的数据共享、结构相似的公共部分的比重。
根据上述第一输入表集合和第二输入表集合计算第一查询语句和第二查询语句的相似度,指的是将第一查询语句所对应的第一输入表集合与第二查询语句对应的第二输入表集合进行比对,以确定第一输入表集合包含的输入表与第二输入表集合包含的输入表之间的重合度。该重合度即可表示第一查询语句和第二查询语句的相似度。具体可参照上述第一实施例中步骤S102中的三种模式理解该过程。
S204,如果确定所述相似度达到预设阈值,对所述第一查询语句和所述第二查询语句进行合并。
本步骤用于对相似度达到预设阈值的第一查询语句和第二查询语句进行合并,请参照上述第一实施例的步骤S103理解本步骤。
在上述第一实施例中,提供了一种对查询语句进行优化的方法,与上述方法相对应的,本申请第三实施例还提供了一种对查询语句进行优化的装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
图3示出了本实施例提供的装置的示意图。如图3所示,所述装置包括:
输入表集合获取单元301,用于获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
相似查询语句判断单元302,用于根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
任务优化单元303,用于在判断结果为是时,对所述第一查询语句和所述第二查询语句进行任务优化。
可选的,所述输入表集合获取单元301,包括:
抽象语法树解析子单元,用于将所述第一查询语句解析为第一抽象语法树结构,将所述第二查询语句解析为第二抽象语法树结构;
输入表集合获取子单元,用于根据所述第一抽象语法树结构获取所述第一输入表集合,根据所述第二抽象语法树结构获取所述第二输入表集合。
可选的,所述抽象语法树解析子单元,具体用于:
遍历所述第一抽象语法树结构,从所述第一抽象语法树结构的子节点中确定所述第一查询语句对应的输入表,所述第一查询语句对应的输入表组成所述第一输入表集合;
遍历所述第二抽象语法树结构,从所述第二抽象语法树结构的子节点中确定所述第二查询语句对应的输入表,所述第二查询语句对应的输入表组成所述第二输入表集合。
可选的,所述第一输入表集合包括一个第一输入表,所述第二输入表集合包括一个第二输入表,所述相似查询语句判断单元302,具体用于:
如果所述第一输入表与所述第二输入表的名称一致,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
可选的,所述第一输入表和所述第二输入表均为数据量不低于预定阈值的输入表。
可选的,所述第一查询语句和所述第二查询语句均用于对查询结果进行过滤,所述任务优化单元303具体用于:
对所述第一查询语句和所述第二查询语句进行合并,实现对输入表的一读多写优化。
可选的,所述第一查询语句和所述第二查询语句均用于对查询结果进行聚合,所述第一查询语句的聚合维度与所述第二查询语句的聚合维度具有包含关系,所述任务优化单元303具体用于:
将聚合维度数量较多的查询语句的输出表作为聚合维度数量较少的查询语句的输入表。
可选的,所述第一输入表集合包含至少两个第一输入表,所述至少两个第一输入表中至少有一个第一输入表为第一主事实表,所述第二输入表集合包含至少两个第二输入表,所述至少两个第二输入表中至少有一个第二输入表为第二主事实表,所述相似查询语句判断单元302具体用于:
如果所述第一主事实表的名称与所述第二主事实表的名称相同,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
可选的,所述第一主事实表与所述第二主事实表均为数据量不低于预定阈值的输入表。
可选的,所述至少两个第一输入表中至少有一个第一输入表为第一维度表,所述第一维度表与所述第一主事实表具有关联关系;所述至少两个第二输入表中至少有一个第二输入表为第二维度表,所述第二维度表与所述第二主事实表具有关联关系,所述任务优化单元303具体用于:
将所述第一维度表所对应的查询语句添加至所述第二查询语句中,实现所述第一查询语句与所述第二查询语句的合并;
或者
将所述第二维度表所对应的查询语句添加至所述第一查询语句中,实现所述第一查询语句与所述第二查询语句的合并。
可选的,相似查询语句判断单元302具体用于:
如果所述第一输入表集合包含所述第二输入表集合的所有输入表,且所述第一查询语句的子查询语句与所述第二查询语句的子查询语句相同,则确定所述第一查询语句与所述第二查询语句为相似查询语句。
可选的,所述任务优化单元303具体用于:
保留所述第二查询语句,将所述第一查询语句包含的第二查询语句的子查询语句替换为第二查询语句的输出表。
可选的,所述第二查询语句的数量至少为一个。
在上述的实施例中,提供了一种对查询语句进行优化的方法以及一种对查询语句进行优化的装置,此外,本申请第四实施例还提供了一种电子设备;所述电子设备实施例如下:
图4示出了本实施例提供的电子设备的示意图。如图4所示,所述电子设备,包括:处理器401;存储器402;
所述存储器402,用于存储对查询语句进行优化的程序,所述程序在被所述处理器读取执行时,执行如下操作:
获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。
例如,所述电子设备为一台计算机,所述计算机获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;并根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。
可选的,所述获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合,包括:
将所述第一查询语句解析为第一抽象语法树结构,将所述第二查询语句解析为第二抽象语法树结构;
根据所述第一抽象语法树结构获取所述第一输入表集合,根据所述第二抽象语法树结构获取所述第二输入表集合。
可选的,所述根据所述第一抽象语法树结构获取所述第一输入表集合,包括:
遍历所述第一抽象语法树结构,从所述第一抽象语法树结构的子节点中确定所述第一查询语句对应的输入表,所述第一查询语句对应的输入表组成所述第一输入表集合;
对应的,所述根据所述第二抽象语法树结构获取所述第二输入表集合,包括:
遍历所述第二抽象语法树结构,从所述第二抽象语法树结构的子节点中确定所述第二查询语句对应的输入表,所述第二查询语句对应的输入表组成所述第二输入表集合。
可选的,所述第一输入表集合包括一个第一输入表,所述第二输入表集合包括一个第二输入表,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一输入表与所述第二输入表的名称一致,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
可选的,所述第一输入表和所述第二输入表均为数据量不低于预定阈值的输入表。
可选的,所述第一查询语句和所述第二查询语句均用于对查询结果进行过滤,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
对所述第一查询语句和所述第二查询语句进行合并,实现对输入表的一读多写优化。
可选的,所述第一查询语句和所述第二查询语句均用于对查询结果进行聚合,所述第一查询语句的聚合维度与所述第二查询语句的聚合维度具有包含关系,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
将聚合维度数量较多的查询语句的输出表作为聚合维度数量较少的查询语句的输入表。
可选的,所述第一输入表集合包含至少两个第一输入表,所述至少两个第一输入表中至少有一个第一输入表为第一主事实表,所述第二输入表集合包含至少两个第二输入表,所述至少两个第二输入表中至少有一个第二输入表为第二主事实表,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一主事实表的名称与所述第二主事实表的名称相同,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
可选的,所述第一主事实表与所述第二主事实表均为数据量不低于预定阈值的输入表。
可选的,所述至少两个第一输入表中至少有一个第一输入表为第一维度表,所述第一维度表与所述第一主事实表具有关联关系;所述至少两个第二输入表中至少有一个第二输入表为第二维度表,所述第二维度表与所述第二主事实表具有关联关系,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
将所述第一维度表所对应的查询语句添加至所述第二查询语句中,实现所述第一查询语句与所述第二查询语句的合并;
或者
将所述第二维度表所对应的查询语句添加至所述第一查询语句中,实现所述第一查询语句与所述第二查询语句的合并。
可选的,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一输入表集合包含所述第二输入表集合的所有输入表,且所述第一查询语句的子查询语句与所述第二查询语句的子查询语句相同,则确定所述第一查询语句与所述第二查询语句为相似查询语句。
可选的,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
保留所述第二查询语句,将所述第一查询语句包含的第二查询语句的子查询语句替换为第二查询语句的输出表。
可选的,所述第二查询语句的数量至少为一个。
本电子设备的相关技术特征的细节描述请参见上述实时核对数据的方法实施例的相关部分,此处不再赘述。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (16)
1.一种对查询语句进行优化的方法,其特征在于,包括:
获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。
2.根据权利要求1所述的对查询语句进行优化的方法,其特征在于,所述获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合,包括:
将所述第一查询语句解析为第一抽象语法树结构,将所述第二查询语句解析为第二抽象语法树结构;
根据所述第一抽象语法树结构获取所述第一输入表集合,根据所述第二抽象语法树结构获取所述第二输入表集合。
3.根据权利要求2所述的对查询语句进行优化的方法,其特征在于,所述根据所述第一抽象语法树结构获取所述第一输入表集合,包括:
遍历所述第一抽象语法树结构,从所述第一抽象语法树结构的子节点中确定所述第一查询语句对应的输入表,所述第一查询语句对应的输入表组成所述第一输入表集合;
对应的,所述根据所述第二抽象语法树结构获取所述第二输入表集合,包括:
遍历所述第二抽象语法树结构,从所述第二抽象语法树结构的子节点中确定所述第二查询语句对应的输入表,所述第二查询语句对应的输入表组成所述第二输入表集合。
4.根据权利要求1所述的对查询语句进行优化的方法,其特征在于,所述第一输入表集合包括一个第一输入表,所述第二输入表集合包括一个第二输入表,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一输入表与所述第二输入表的名称一致,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
5.根据权利要求4所述的对查询语句进行优化的方法,其特征在于,所述第一输入表和所述第二输入表均为数据量不低于预定阈值的输入表。
6.根据权利要求4所述的对查询语句进行优化的方法,其特征在于,所述第一查询语句和所述第二查询语句均用于对查询结果进行过滤,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
对所述第一查询语句和所述第二查询语句进行合并,实现对输入表的一读多写优化。
7.根据权利要求4所述的对查询语句进行优化的方法,其特征在于,所述第一查询语句和所述第二查询语句均用于对查询结果进行聚合,所述第一查询语句的聚合维度与所述第二查询语句的聚合维度具有包含关系,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
将聚合维度数量较多的查询语句的输出表作为聚合维度数量较少的查询语句的输入表。
8.根据权利要求1所述的对查询语句进行优化的方法,其特征在于,所述第一输入表集合包含至少两个第一输入表,所述至少两个第一输入表中至少有一个第一输入表为第一主事实表,所述第二输入表集合包含至少两个第二输入表,所述至少两个第二输入表中至少有一个第二输入表为第二主事实表,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一主事实表的名称与所述第二主事实表的名称相同,则确定所述第一查询语句和所述第二查询语句为相似查询语句。
9.根据权利要求8所述的对查询语句进行优化的方法,其特征在于,所述第一主事实表与所述第二主事实表均为数据量不低于预定阈值的输入表。
10.根据权利要求8所述的对查询语句进行优化的方法,其特征在于,所述至少两个第一输入表中至少有一个第一输入表为第一维度表,所述第一维度表与所述第一主事实表具有关联关系;所述至少两个第二输入表中至少有一个第二输入表为第二维度表,所述第二维度表与所述第二主事实表具有关联关系,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
将所述第一维度表所对应的查询语句添加至所述第二查询语句中,实现所述第一查询语句与所述第二查询语句的合并;
或者
将所述第二维度表所对应的查询语句添加至所述第一查询语句中,实现所述第一查询语句与所述第二查询语句的合并。
11.根据权利要求1所述的对查询语句进行优化的方法,其特征在于,所述根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句,包括:
如果所述第一输入表集合包含所述第二输入表集合的所有输入表,且所述第一查询语句的子查询语句与所述第二查询语句的子查询语句相同,则确定所述第一查询语句与所述第二查询语句为相似查询语句。
12.根据权利要求11所述的对查询语句进行优化的方法,其特征在于,所述对所述第一查询语句和所述第二查询语句进行任务优化,包括:
保留所述第二查询语句,将所述第一查询语句包含的第二查询语句的子查询语句替换为第二查询语句的输出表。
13.根据权利要求1所述的对查询语句进行优化的方法,其特征在于,所述第二查询语句的数量至少为一个。
14.一种数据处理方法,其特征在于,包括:
获取第一查询语句和第二查询语句;
获取所述第一查询语句对应的第一输入表集合和所述第二查询语句对应的第二输入表集合;
根据所述第一输入表集合和所述第二输入表集合,计算所述第一查询语句与所述第二查询语句的相似度;
如果确定所述相似度达到预设阈值,对所述第一查询语句和所述第二查询语句进行合并。
15.一种对查询语言进行优化的装置,其特征在于,包括:
输入表集合获取单元,用于获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
相似查询语句判断单元,用于根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
任务优化单元,用于在判断结果为是时,对所述第一查询语句和所述第二查询语句进行任务优化。
16.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一种用于对查询语句进行优化的程序,该设备通电并通过所述处理器运行所述用于对查询语句进行优化的程序后,执行下述步骤:
获取第一查询语句对应的第一输入表集合和第二查询语句对应的第二输入表集合;其中,所述第一输入表集合为所述第一查询语句对应的输入表所组成的集合,所述第二输入表集合为所述第二查询语句对应的输入表所组成的集合;
根据所述第一输入表集合和所述第二输入表集合,判断所述第一查询语句与所述第二查询语句是否为相似查询语句;
如果判断结果为是,则对所述第一查询语句和所述第二查询语句进行任务优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550487.9A CN110555035A (zh) | 2018-05-31 | 2018-05-31 | 一种对查询语句进行优化的方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550487.9A CN110555035A (zh) | 2018-05-31 | 2018-05-31 | 一种对查询语句进行优化的方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110555035A true CN110555035A (zh) | 2019-12-10 |
Family
ID=68733837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810550487.9A Pending CN110555035A (zh) | 2018-05-31 | 2018-05-31 | 一种对查询语句进行优化的方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110555035A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061803A (zh) * | 2019-12-30 | 2020-04-24 | 北京三快在线科技有限公司 | 任务处理方法、装置、设备及存储介质 |
CN111159203A (zh) * | 2019-12-31 | 2020-05-15 | 中科曙光国际信息产业有限公司 | 一种数据关联分析的方法、平台、电子设备及存储介质 |
CN111159218A (zh) * | 2019-12-31 | 2020-05-15 | 中科曙光国际信息产业有限公司 | 数据处理方法、装置及可读存储介质 |
CN111159228A (zh) * | 2019-12-26 | 2020-05-15 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据查询方法和装置 |
CN111400338A (zh) * | 2020-03-04 | 2020-07-10 | 平安医疗健康管理股份有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN111552730A (zh) * | 2020-04-28 | 2020-08-18 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN113535756A (zh) * | 2021-07-30 | 2021-10-22 | 上海达梦数据库有限公司 | 数据查询方法、装置、设备及存储介质 |
CN114238395A (zh) * | 2022-01-06 | 2022-03-25 | 税友软件集团股份有限公司 | 一种数据库优化方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678621A (zh) * | 2013-12-18 | 2014-03-26 | 上海达梦数据库有限公司 | 基于常量替换的sql语句优化方法 |
US9183254B1 (en) * | 2012-05-04 | 2015-11-10 | Paraccel Llc | Optimizing database queries using subquery composition |
CN106484520A (zh) * | 2016-10-17 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于数据血缘关系的智能调度方法及系统 |
CN106611044A (zh) * | 2016-12-02 | 2017-05-03 | 星环信息科技(上海)有限公司 | 一种sql优化方法及设备 |
-
2018
- 2018-05-31 CN CN201810550487.9A patent/CN110555035A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183254B1 (en) * | 2012-05-04 | 2015-11-10 | Paraccel Llc | Optimizing database queries using subquery composition |
CN103678621A (zh) * | 2013-12-18 | 2014-03-26 | 上海达梦数据库有限公司 | 基于常量替换的sql语句优化方法 |
CN106484520A (zh) * | 2016-10-17 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于数据血缘关系的智能调度方法及系统 |
CN106611044A (zh) * | 2016-12-02 | 2017-05-03 | 星环信息科技(上海)有限公司 | 一种sql优化方法及设备 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159228A (zh) * | 2019-12-26 | 2020-05-15 | 北京神州绿盟信息安全科技股份有限公司 | 一种数据查询方法和装置 |
CN111061803A (zh) * | 2019-12-30 | 2020-04-24 | 北京三快在线科技有限公司 | 任务处理方法、装置、设备及存储介质 |
CN111159203B (zh) * | 2019-12-31 | 2023-10-31 | 中科曙光国际信息产业有限公司 | 一种数据关联分析的方法、平台、电子设备及存储介质 |
CN111159203A (zh) * | 2019-12-31 | 2020-05-15 | 中科曙光国际信息产业有限公司 | 一种数据关联分析的方法、平台、电子设备及存储介质 |
CN111159218A (zh) * | 2019-12-31 | 2020-05-15 | 中科曙光国际信息产业有限公司 | 数据处理方法、装置及可读存储介质 |
CN111159218B (zh) * | 2019-12-31 | 2023-10-31 | 中科曙光国际信息产业有限公司 | 数据处理方法、装置及可读存储介质 |
CN111400338A (zh) * | 2020-03-04 | 2020-07-10 | 平安医疗健康管理股份有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN111400338B (zh) * | 2020-03-04 | 2022-11-22 | 深圳平安医疗健康科技服务有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN111552730A (zh) * | 2020-04-28 | 2020-08-18 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN111552730B (zh) * | 2020-04-28 | 2024-01-26 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN113535756A (zh) * | 2021-07-30 | 2021-10-22 | 上海达梦数据库有限公司 | 数据查询方法、装置、设备及存储介质 |
CN113535756B (zh) * | 2021-07-30 | 2023-05-30 | 上海达梦数据库有限公司 | 数据查询方法、装置、设备及存储介质 |
CN114238395A (zh) * | 2022-01-06 | 2022-03-25 | 税友软件集团股份有限公司 | 一种数据库优化方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555035A (zh) | 一种对查询语句进行优化的方法、装置 | |
US20220035815A1 (en) | Processing database queries using format conversion | |
US7680862B2 (en) | Rewriting table functions as SQL strings | |
US8719250B2 (en) | Integrating RDF data into a relational database system | |
US9355145B2 (en) | User defined function classification in analytical data processing systems | |
US8185509B2 (en) | Association of semantic objects with linguistic entity categories | |
US20170083573A1 (en) | Multi-query optimization | |
US10083227B2 (en) | On-the-fly determination of search areas and queries for database searches | |
EP2184689B1 (en) | Normalizing a filter condition of a database query | |
US10942926B2 (en) | Identification, and query, of semantically-related database tables | |
CN110096513A (zh) | 一种数据查询、资金核对方法及装置 | |
MX2013014800A (es) | Recomendacion de enriquecimientos de datos. | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
CN114625732A (zh) | 基于结构化查询语言sql的查询方法和系统 | |
CN104679646A (zh) | 一种用于检测sql代码缺陷的方法和装置 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
US20070282804A1 (en) | Apparatus and method for extracting database information from a report | |
US20080301085A1 (en) | Dynamic Database File Column Statistics for Arbitrary Union Combination | |
Kilias et al. | INDREX: In-database relation extraction | |
Chacko et al. | Capturing provenance for big data analytics done using SQL interface | |
US8504552B2 (en) | Query based paging through a collection of values | |
CN111159230A (zh) | 数据资源地图的构建方法及装置、存储介质、终端 | |
US11921710B2 (en) | Systems and methods for accessing data entities managed by a data processing system | |
US20060085464A1 (en) | Method and system for providing referential integrity constraints | |
Dvoretskyi et al. | Data Utility Assessment while Optimizing the Structure and Minimizing the Volume of a Distributed Database Node. |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40017550 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191210 |
|
RJ01 | Rejection of invention patent application after publication |