数据查询统计方法及装置制造方法及图纸

技术编号:23149114 阅读:21 留言:0更新日期:2020-01-18 13:29
本发明专利技术提供了一种数据查询统计方法及装置,该方法包括:获取原始SQL语句;原始SQL语句包括查询条件;调用语法解析器拆解原始SQL语句,得到拆解结果;拆解结果用于描述原始SQL语句中各函数的层级信息和功能信息;根据层级信息和功能信息确定目标SQL语句;目标SQL语句中的函数与查询条件相关联;根据目标SQL语句生成统计结果。本发明专利技术可以提高对数据库进行查询及统计数据的效率,且在不同的SQL可以通用。

Data query statistics method and device

【技术实现步骤摘要】
数据查询统计方法及装置
本专利技术涉及计算机
,尤其是涉及一种数据查询统计方法及装置。
技术介绍
现如今大量的程序应用中,各程序或系统都搭载着大量的数据,如果需要在页面上呈现这些数据,就需要对大量的数据进行查询、统计,在进行数据库查询时首先会把所有的数据都查询出来,然后再进行分页显示,这时候分页查询的操作就必不可少了,在实际应用中计算机程序常常运行大量结构化查询语言(StructuredQueryLanguage,SQL)对程序进行分页查询。其中,SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。分页查询是指将过多的查询或统计结果在有限的界面上分多页来显示。现有的分页查询可以在数据库中进行操作,MySQL的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通用形式:selectSQL_CALC_FOUND_ROWS*fromtable_namelimit0,10;selectFOUND_ROWS()ascount;MySQL提供了SQL_CALC_FOUND_ROWS和FOUND_ROWS()关键字,使用SQL_CALC_FOUND_ROWS查询一次后,可以使用FOUND_ROWS()获取数据总量,方便了对查询结果进行统计,但此种情形下效率较低,且只能在MySQL中使用。另外,SQL的分页查询现有技术中较常使用的分页插件,其中Mybatis的PageHelper插件增加手写count查询支持,其主要方法是增加查询后缀配置参数,该参数是针对分页拦截器配置的,默认值为_COUNT。PageHelper会优先通过当前查询方法名查找手写的分页查询。如果存在就使用手写的count查询,如果不存在,则使用Mybatis默认的方式自动创建count查询。MybatisPageHelper提供了用户自定义COUNT语句的接口,虽然提高了效率,但仍然需要用户自定义,并不是实时生成。
技术实现思路
本专利技术提供了一种数据查询统计方法及装置,可以提高对数据库进行查询及统计数据的效率,且能够适用于多种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语句生成统计结果,这一过程可以减少对与查询条件无关的SQL语句的查询和统计,从而可以快速生成统计结果,以提高查询统计的效率。本专利技术实施例可以提高对数据库进行查询及统计数据的效率,且在不同的SQL可以通用。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的数据查询统计方法流程图;图2为本专利技术实施例提供的数据查询统计方法实施流程示意图;图3为本专利技术实施例提供的数据查询统计方法一种添加统计函数的示例;图4为本专利技术实施例提供的数据查询统计方法一种剔除排序函数的示例;图5为本专利技术实施例提供的数据查询统计方法一种剔除关联表的示例;图6为本专利技术实施例提供的数据查询统计装置结构示意框图;图7为本专利技术实施例提供的计算机设备结构框图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。目前,使用SQL对程序进行分页查询时,通过调度系统实现所有SQL程序的顺序提取调度,进行大量重复的查询统计操作。这些SQL程序看上去是为了解决各种各样的业务问题,但其本质上是对于原始数据的直接操作,分页查询每次都要进行统计,计算查询结果,由于计算的相似性,导致大量的重复计算。因此,在实时生成的视图进行分页查询时,对于统计结果数量的SQL进行优化并能提高效率,在项目研发过程中也显得尤为重要。基于此,本专利技术实施例提供的一种数据查询统计方法及装置,可以在对数据库进行分页查询、统计数据量时提供更便捷的操作方法并提高效率;同时打通不同SQL程序得以通用,实时快速的生成统计语句,减轻服务器对数据库查询和统计的负担。为便于对本实施例进行理解,首先对本专利技术实施例所公开的一种数据查询统计方法进行详细介绍。本专利技术实施例提供了一种数据查询统计方法,可以应用于分页查询时,对将要进行运算的SQL语句进行分解优化。参见图1所示的一种数据查询统计方法流程图,该方法包括以下步骤:步骤S102,获取原始SQL语句。在本专利技术实施例中,原始SQL语句是指待计算的SQL语句,是服务器中目标程序中的SQL语句本文档来自技高网
...

【技术保护点】
1.一种数据查询统计方法,其特征在于,包括:/n获取原始SQL语句;所述原始SQL语句包括查询条件;/n调用语法解析器拆解所述原始SQL语句,得到拆解结果;所述拆解结果用于描述所述原始SQL语句中各函数的层级信息和功能信息;/n根据所述层级信息和所述功能信息确定目标SQL语句;所述目标SQL语句中的函数与所述查询条件相关联;/n根据所述目标SQL语句生成统计结果。/n

【技术特征摘要】
1.一种数据查询统计方法,其特征在于,包括:
获取原始SQL语句;所述原始SQL语句包括查询条件;
调用语法解析器拆解所述原始SQL语句,得到拆解结果;所述拆解结果用于描述所述原始SQL语句中各函数的层级信息和功能信息;
根据所述层级信息和所述功能信息确定目标SQL语句;所述目标SQL语句中的函数与所述查询条件相关联;
根据所述目标SQL语句生成统计结果。


2.根据权利要求1所述的方法,其特征在于,根据所述层级信息和所述功能信息确定目标SQL语句,包括:
根据所述层级信息和所述功能信息抽取所述原始SQL语句中目标字符部分;
对所述目标字符部分进行优化,得到目标SQL语句。


3.根据权利要求2所述的方法,其特征在于,对所述目标字符部分进行优化,得到目标SQL语句,包括:
剔除所述目标字符部分与所述查询条件无关的操作函数,得到目标SQL语句;所述操作函数包括以下至少一种操作:关联表操作、字段操作、排序操作、分组操作或分页操作。


4.根据权利要求1所述的方法,其特征在于,根据所述目标SQL语句生成统计结果,包括:
在所述目标SQL语句中添加聚合函数;
根据所述聚合函数和所述目标SQL语句生成统计结果。


5.一种数据查询统计装置,其特征在于,包括:
获取模块,用于获取原始SQL语句;所述原始SQL语句包括查询条件;
拆解模块,用于调用语法解析器拆解所述原始SQ...

【专利技术属性】
技术研发人员:黄锦添赵鑫吴敦鸿
申请(专利权)人:北京数知科技股份有限公司
类型:发明
国别省市:北京;11

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

1