一种全表扫描的结构化查询语句的确定方法、装置和设备制造方法及图纸

技术编号:30230687 阅读:17 留言:0更新日期:2021-09-29 10:03
本说明书实施例提供了一种全表扫描的结构化查询语句的确定方法、装置和设备,涉及大数据技术领域,其中,该方法包括:将目标结构化查询语句转换为语法树;遍历所述语法树中的节点筛选出所述目标结构化查询语句涉及的表名;根据所述语法树,确定所述目标结构化查询语句筛选的字段;获取所述目标结构化查询语句涉及的表名对应的字段信息集;确定所述目标结构化查询语句筛选的字段和所述字段信息集是否匹配;在不匹配的情况下,确定所述目标结构化查询语句为全表扫描的结构化查询语句。在本说明书实施例中,可以高效、准确地确定目标结构化查询语句是否为全表扫描的结构化查询语句,进而可以确保数据库资源可以得到合理的利用。而可以确保数据库资源可以得到合理的利用。而可以确保数据库资源可以得到合理的利用。

【技术实现步骤摘要】
一种全表扫描的结构化查询语句的确定方法、装置和设备


[0001]本说明书实施例涉及大数据
,特别涉及一种全表扫描的结构化查询语句的确定方法、装置和设备。

技术介绍

[0002]在编写SQL(结构化查询语言)进行数据查询的过程中,有时会涉及全表扫描的情况。若在查询过程中,没有筛选过任意一个字段,则最终的扫描的结果是全表的数据。全表扫描是一个全量的过程,过程中会涉及到大量和结果完全无关的数据。因此,若查询触发了全表扫描,会消耗数据库资源,影响数据库响应速度,严重的会导致使用数据库的所用应用程序的卡顿。随着大数据领域的蓬勃发展,越来越多企业每天都有大量的基于数据库的数据分析需求,若有大量的SQL触发了全表扫描查询,则必然会影响整个分析的效率。
[0003]现有技术中通常是通过人工的方式检查SQL语句中是否有筛选过任意字段以确定是否是全表扫描SQL,采用该方式需要耗费较多人力和时间,随着SQL越来越复杂化会存在影响正常SQL的执行时间的问题。由此可见,采用现有技术中的技术方案无法高效地确定出全表扫描SQL。
[0004]针对上述问题,目前尚未提出有效的解决方案。

技术实现思路

[0005]本说明书实施例提供了一种全表扫描的结构化查询语句的确定方法、装置和设备,以解决现有技术中无法高效地确定出全表扫描SQL的问题。
[0006]本说明书实施例提供了一种全表扫描的结构化查询语句的确定方法,包括:将目标结构化查询语句转换为语法树;遍历所述语法树中的节点筛选出所述目标结构化查询语句涉及的表名;根据所述语法树,确定所述目标结构化查询语句筛选的字段;获取所述目标结构化查询语句涉及的表名对应的字段信息集;确定所述目标结构化查询语句筛选的字段和所述字段信息集是否匹配;在不匹配的情况下,确定所述目标结构化查询语句为全表扫描的结构化查询语句。
[0007]本说明书实施例还提供了一种全表扫描的结构化查询语句的确定装置,包括:转换模块,用于将目标结构化查询语句转换为语法树;筛选模块,用于遍历所述语法树中的节点筛选出所述目标结构化查询语句涉及的表名;第一确定模块,用于根据所述语法树,确定所述目标结构化查询语句筛选的字段;获取模块,用于获取所述目标结构化查询语句涉及的表名对应的字段信息集;第二确定模块,用于确定所述目标结构化查询语句筛选的字段和所述字段信息集是否匹配;第三确定模块,用于在不匹配的情况下,确定所述目标结构化查询语句为全表扫描的结构化查询语句。
[0008]本说明书实施例还提供了一种全表扫描的结构化查询语句的确定设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现本说明书实施例中任意一个方法实施例的步骤。
[0009]本说明书实施例提供了一种全表扫描的结构化查询语句的确定方法,可以通过将目标结构化查询语句转换为语法树,遍历所述语法树中的节点筛选出所述目标结构化查询语句涉及的表名。可以根据上述语法树,确定所述目标结构化查询语句筛选的字段。可以获取所述目标结构化查询语句涉及的表名对应的字段信息集,并确定所述目标结构化查询语句筛选的字段和所述字段信息集是否匹配。在不匹配的情况下,则说明目标结构化查询语句筛选的字段中不存在字段信息集中的信息,目标结构化查询语句没有对该表名对应的数据表中的字段进行筛选查询,可以确定目标结构化查询语句为全表扫描的结构化查询语句。从而可以高效、准确地确定目标结构化查询语句是否为全表扫描的结构化查询语句,进而可以确保数据库资源可以得到合理的利用。
附图说明
[0010]此处所说明的附图用来提供对本说明书实施例的进一步理解,构成本说明书实施例的一部分,并不构成对本说明书实施例的限定。在附图中:
[0011]图1是根据本说明书实施例提供的全表扫描的结构化查询语句的确定方法的步骤示意图;
[0012]图2是根据本说明书实施例提供的确定是否为全表扫描的结构化查询语句的步骤示意图;
[0013]图3是根据本说明书实施例提供的全表扫描的结构化查询语句的确定装置的结构示意图;
[0014]图4是根据本说明书实施例提供的全表扫描的结构化查询语句的确定设备的结构示意图。
具体实施方式
[0015]下面将参考若干示例性实施方式来描述本说明书实施例的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本说明书实施例,而并非以任何方式限制本说明书实施例的范围。相反,提供这些实施方式是为了使本说明书实施例公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0016]本领域的技术人员知道,本说明书实施例的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本说明书实施例公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
[0017]虽然下文描述流程包括以特定顺序出现的多个操作,但是应该清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
[0018]请参阅图1,本实施方式可以提供一种全表扫描的结构化查询语句的确定方法。该全表扫描的结构化查询语句的确定方法可以用于高效、准确地确定目标结构化查询语句是否为全表扫描的结构化查询语句,进而可以确保数据库资源可以得到合理的利用。上述全表扫描的结构化查询语句的确定方法可以包括以下步骤。
[0019]S101:将目标结构化查询语句转换为语法树。
[0020]在本实施方式中,可以接收用户提交的目标结构化查询语句,为了确定目标结构化查询语句中涉及的数据库和表名,可以将结构化查询语句转换为抽象语法树。其中,上述目标结构化查询语句可以为待检测是否为全表扫描的结构化查询语句。
[0021]在本实施方式中,可以利用语法解析器生成语法树,语法解析器支持语法扩展,以支持Mysql、Oracle、Hive等多种数据源不同语法的解析需要。例如:开源的语法解析器antlr、javacc,通过扩展语法规则文件即可实现多数据源语法支持;解析器Calcite、Druid则可以内置编程式语法解析器。其中,上述语法树可以由一系列的节点串连而成。
[0022]S102:遍历语法树中的节点筛选出目标结构化查询语句涉及的表名。
[0023]在本实施方式中,可以遍历上述语法树中的节点从而筛选出目标结构化查询语句涉及的所有表名,上述表名可以为数据库中数据表的表名。
[0024]在本实施方式中,由于不同数据库中可能会存在同名表,为了进行区分通常表名会按照预设的格式记录,例如:数据库.表名,可以将数据库和表名拆分从而得到所有的表名。
[0025]在本实施方式中,目标结构化查询语句涉及的表名可以为一个或者多个。
[0026]S103:根据语法树,确定目标结构化查询语句筛选的字段。
[0027]在本实施方式中,可以根据上述语法树,确定目标结构化查询语本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种全表扫描的结构化查询语句的确定方法,其特征在于,包括:将目标结构化查询语句转换为语法树;遍历所述语法树中的节点筛选出所述目标结构化查询语句涉及的表名;根据所述语法树,确定所述目标结构化查询语句筛选的字段;获取所述目标结构化查询语句涉及的表名对应的字段信息集;确定所述目标结构化查询语句筛选的字段和所述字段信息集是否匹配;在不匹配的情况下,确定所述目标结构化查询语句为全表扫描的结构化查询语句。2.根据权利要求1所述的方法,其特征在于,在将目标结构化查询语句转换为语法树之后,还包括:根据所述语法树,确定所述目标结构化查询语句是否为建表的结构化查询语句;在确定是建表的结构化查询语句的情况下,将所述目标结构化查询语句放行。3.根据权利要求2所述的方法,其特征在于,在确定所述目标结构化查询语句是否为建表的结构化查询语句之后,还包括:在确定不是建表的结构化查询语句的情况下,遍历所述语法树中的节点筛选出所述目标结构化查询语句涉及的表名。4.根据权利要求1所述的方法,其特征在于,在遍历所述语法树中的节点筛选出所述目标结构化查询语句涉及的表名之后,还包括:确定目标结构化查询语句涉及的目标表名是否符合目标格式;在确定不符合目标格式的情况下,将所述目标表名丢弃。5.根据权利要求1所述的方法,其特征在于,获取所述目标结构化查询语句涉及的表名对应的字段信息集,包括:确定所述目标结构化查询语句涉及的目标表名对应的数据表是否为分区表;在确定为分区表的情况下,确定所述目标表名对应的数据表的分区字段;根据所述目标表名对应的数据表的分区字段生成字段信息集。6.根据权利要求5所述的方法,其特征在于,在确定所述目标结构化查询语句涉及的目标表名对应的数据表是否为分区表之后,还包括:在确定不为分区表的情况下,确定所述目标表名的下一表名对应的数据表是否为分区表。7.根据权利要求5所述的方法,其特征在于,确定所述目标结构化查询语句涉及的目标表名对应的数据表是否为分区表,包括:获取所述目标结构化查询语句涉及的目标表名对应的...

【专利技术属性】
技术研发人员:黄萌阳兵林丹
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1