语句检测方法、装置、非易失性存储介质及电子设备与流程

文档序号:35067404发布日期:2023-08-09 07:09阅读:24来源:国知局
语句检测方法、装置、非易失性存储介质及电子设备与流程

本发明涉及大数据领域,具体而言,涉及一种语句检测方法、装置、非易失性存储介质及电子设备。


背景技术:

1、随着信息化进程的不断推进,以及机构的业务复杂度的不断提高,业务领域的访问表的复杂度也有所提高。生产实践中,访问业务数据的程序效率问题偶有出现,主要问题为sql语句未匹配索引,或者由于索引过滤率较低导致程序需要访问过多数据页进而导致cpu消耗过高(例如超过50ms)和响应时间超长,影响用户体验。

2、相关技术中,通常需要等出现了业务数据访问异常的情况之后,由用户上报问题,此时才能够开始排查问题产生的原因,例如排查语句的问题,导致出现问题解决的滞后性,难以提前预见问题并提前解决,还可能会给用户的业务造成损失。

3、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本发明实施例提供了一种语句检测方法、装置、非易失性存储介质及电子设备,以至少解决难以排查在业务数据的搜索方面可能存在性能隐患的sql语句的技术问题。

2、根据本发明实施例的一个方面,提供了一种语句检测方法,包括:获取包括谓词的结构化查询语言sql语句,其中,所述sql语句用于对关系型数据库管理系统mysql数据库中的目标数据表进行数据查询,所述谓词用于筛选数据的条件表达式;根据所述谓词,确定所述目标数据表目标索引中的目标字段,其中,所述目标字段与所述谓词相匹配;从所述目标数据表中筛选出与所述目标字段匹配的分组数据;根据所述分组数据的数据量,确定所述sql语句的语句效率检测结果。

3、可选地,根据所述分组数据的数据量,确定所述sql语句的语句效率检测结果,包括:获取所述目标数据表的总表数据量以及过滤率阈值;根据所述分组数据的数据量和所述总表数据量,确定所述sql语句对应的数据过滤率;在所述数据过滤率大于等于所述过滤率阈值的情况下,确定所述sql语句的语句效率检测结果为检测通过;在所述数据过滤率小于所述过滤率阈值的情况下,确定所述sql语句的语句效率检测结果为检测不通过。

4、可选地,所述根据所述分组数据的数据量和所述总表数据量,确定所述sql语句对应的数据过滤率,包括:在所述分组数据包括n组的情况下,确定所述n组分组数据各自的数据量中的最大值,其中n≥2;根据所述n组分组数据各自的数据量中的最大值和所述总表数据量,确定所述数据过滤率。

5、可选地,所述根据所述分组数据的数据量和所述总表数据量,确定所述sql语句对应的数据过滤率,包括:在所述分组数据包括n组的情况下,确定所述n组分组数据各自的数据量;根据所述n组分组数据各自的数据量和预先确定的排序阈值m,确定所述n组分组数据中的第一目标组数据,其中,所述第一目标组数据的数据量在所述n组分组数据各自的数据量中从大到小排第m位,2≤m≤n;根据所述第一目标组数据的数据量和所述总表数据量,确定所述数据过滤率。

6、可选地,所述根据所述分组数据的数据量和所述总表数据量,确定所述sql语句对应的数据过滤率,包括:在所述分组数据包括n组的情况下,确定所述n组分组数据各自的数据量;根据所述目标数据表的访问历史数据,确定所述n组分组数据各自的访问频率;根据所述n组分组数据各自的数据量、所述n组分组数据各自的访问频率以及预设的访问频率阈值,确定所述n组分组数据中的第二目标组数据,其中,所述第二目标组数据为候选分组数据中数据量最大的分组数据,所述候选分组数据为所述n组分组数据中访问频率大于所述访问频率阈值的分组数据;根据所述第二目标组数据对应的数据量和所述总表数据量,确定所述数据过滤率。

7、可选地,根据所述谓词,确定所述目标数据表目标索引中的目标字段,包括:在所述目标数据表中包括l条索引,且所述l条索引均包括与所述谓词相匹配的字段的情况下,确定所述l条索引各自的执行效率,其中l≥2;将所述l条索引中执行效率最高的索引确定为所述目标索引,其中,所述目标索引包括的与所述谓词匹配的字段为所述目标字段。

8、可选地,从所述目标数据表中筛选出与所述目标字段匹配的分组数据,包括:根据所述目标字段,采用分组聚合子句对所述目标数据表中的全量数据进行分组,筛选得到与所述目标字段匹配的所述分组数据。

9、根据本发明实施例的一个方面,提供了一种语句检测装置,包括:获取模块,用于获取包括谓词的结构化查询语言sql语句,其中,所述sql语句用于对关系型数据库管理系统mysql数据库中的目标数据表进行数据查询,所述谓词用于筛选数据的条件表达式;第一确定模块,用于根据所述谓词,确定所述目标数据表目标索引中的目标字段,其中,所述目标字段与所述谓词相匹配;筛选模块,用于从所述目标数据表中筛选出与所述目标字段匹配的分组数据;第二确定模块,用于根据所述分组数据的数据量,确定所述sql语句的语句效率检测结果。

10、根据本发明实施例的一个方面,提供了一种非易失性存储介质,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行上述任意一项所述语句检测方法。

11、根据本发明实施例的一个方面,提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项所述的语句检测方法。

12、在本发明实施例中,采用在投产前预先排查sql语句的语句效率的方式,通过获取包括谓词的结构化查询语言sql语句,根据谓词,确定目标数据表目标索引中的目标字段,其中,目标字段与谓词相匹配,从目标数据表中筛选出与目标字段匹配的分组数据,根据分组数据的数据量,确定sql语句的语句效率检测结果,达到了确定sql语句的语句效率的目的,从而实现了在将业务功能提供给用户前预先排查存在效率隐患的sql语句的技术效果,进而解决了难以排查在业务数据的搜索方面可能存在性能隐患的sql语句的技术问题。



技术特征:

1.一种语句检测方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,根据所述分组数据的数据量,确定所述sql语句的语句效率检测结果,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述分组数据的数据量和所述总表数据量,确定所述sql语句对应的数据过滤率,包括:

4.根据权利要求2所述的方法,其特征在于,所述根据所述分组数据的数据量和所述总表数据量,确定所述sql语句对应的数据过滤率,包括:

5.根据权利要求2所述的方法,其特征在于,所述根据所述分组数据的数据量和所述总表数据量,确定所述sql语句对应的数据过滤率,包括:

6.根据权利要求1至5中任意一项所述的方法,其特征在于,根据所述谓词,确定所述目标数据表目标索引中的目标字段,包括:

7.根据权利要求1至5中任意一项所述的方法,其特征在于,从所述目标数据表中筛选出与所述目标字段匹配的分组数据,包括:

8.一种语句检测装置,其特征在于,包括:

9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至7中任意一项所述语句检测方法。

10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的语句检测方法。


技术总结
本发明公开了一种语句检测方法、装置、非易失性存储介质及电子设备。涉及大数据领域,该方法包括:获取包括谓词的结构化查询语言SQL语句,其中,SQL语句用于对关系型数据库管理系统MySQL数据库中的目标数据表进行数据查询,谓词用于筛选数据的条件表达式;根据谓词,确定目标数据表目标索引中的目标字段,其中,目标字段与谓词相匹配;从目标数据表中筛选出与目标字段匹配的分组数据;根据分组数据的数据量,确定SQL语句的语句效率检测结果。本发明解决了难以排查在业务数据的搜索方面可能存在性能隐患的SQL语句的技术问题。

技术研发人员:鲁凡,郑培龙,梁永尧,耿蕊
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1