SQL分析方法及装置与流程

    专利2025-03-31  22


    本发明涉及大数据,尤其涉及sql分析方法及装置。


    背景技术:

    1、本部分旨在为发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

    2、在数据仓库应用场景中,为了便于对海量数据管理和利用,数据通常以分区表的形式保存的。用户可以通过精准的分区筛选,提高数据查询效率,而在大数据云数仓的应用场景中,数据库通常面临着高并发、负载不规范的sql(全表扫描、多分区扫描、sql倾斜等)会消耗集群大量资源,不仅影响自己作业的查询效率,而且会影响库中其他用户的使用体验,这些不规范的sql会导致集群的负载变大,库中sql执行效率下降。

    3、现有对不规范sql排查,主要是通过基于日志的静态分析和人工的分析开展的,例如图1所示的基于日志的静态分析方案示例,展示了基于日志的静态的sql分析方案的基本流程,该方案首先通过数据库的历史日志文档,解析出全量的sql,然后通过对sql执行计划和相关表元数据的查询、分析找出问题sql,最后将问题sql打包发送给用户。

    4、因此,基于日志的静态sql分析方案无法实时的分析、干预库中的问题sql,该方法通过对数据库历史日志的分析,找出全量sql,并通过分析sql执行计划和对应表的元数据信息,筛选出问题sql。而基于人工的分析,分析效率低,难以及时干预库中问题sql的执行,靠人工无法实时监控库中问题sql,人工分析通常在sql已经影响到数据库性能后,采取的补救措施,难以实时监控、干预问题sql的执行。


    技术实现思路

    1、本发明实施例提供一种sql语句分析方法,用以提高sql语句分析效率,及时干预库中的问题sql语句,避免问题sql影响数据库的效率,该方法包括:

    2、配置sql分析参数,其中,sql分析参数包括:sql分析范围参数、超时时长、用户白名单列表、表的白名单列表、多分区阈值参数、查杀条件参数;

    3、根据sql分析范围参数确定待分析时间段,根据待分析时间段、以及用户实时会话信息视图,获取待分析时间段内的会话信息;其中,会话信息中包括:待分析时间段内多个会话用户分别对应的会话;

    4、将会话信息按照会话用户进行拆分,得到每一会话用户对应的会话;

    5、根据预先定义的会话对象字段,将每一会话用户对应的会话中的内容拆分到每一会话用户对应的会话对象的各字段中,得到每一会话用户对应的会话对象;

    6、根据用户白名单列表对各会话用户对应的会话对象进行过滤,得到待解析会话对象;

    7、针对每一待解析会话对象,根据表的白名单列表、多分区阈值参数、以及超时时长,得到待解析会话对象的问题sql检测结果;

    8、根据查杀条件参数、待解析会话对象的问题sql检测结果,对待解析会话对象对应会话进行处理。

    9、本发明实施例还提供一种sql分析装置,用以提高sql语句分析效率,及时干预库中的问题sql语句,避免问题sql影响数据库的效率,该装置包括:

    10、配置模块,用于配置sql分析参数,其中,sql分析参数包括:sql分析范围参数、超时时长、用户白名单列表、表的白名单列表、多分区阈值参数、查杀条件参数;

    11、第一处理模块,用于根据sql分析范围参数确定待分析时间段,根据待分析时间段、以及用户实时会话信息视图,获取待分析时间段内的会话信息;其中,会话信息中包括:待分析时间段内多个会话用户分别对应的会话;

    12、第二处理模块,用于将会话信息按照会话用户进行拆分,得到每一会话用户对应的会话;

    13、第三处理模块,用于根据预先定义的会话对象字段,将每一会话用户对应的会话中的内容拆分到每一会话用户对应的会话对象的各字段中,得到每一会话用户对应的会话对象;

    14、过滤模块,用于根据用户白名单列表对各会话用户对应的会话对象进行过滤,得到待解析会话对象;

    15、第四处理模块,用于针对每一待解析会话对象,根据表的白名单列表、多分区阈值参数、以及超时时长,得到待解析会话对象的问题sql检测结果;

    16、第五处理模块,用于根据查杀条件参数、待解析会话对象的问题sql检测结果,对待解析会话对象对应会话进行处理。

    17、本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述sql分析方法。

    18、本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述sql分析方法。

    19、本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述sql分析方法。

    20、本发明实施例中,配置sql分析参数,其中,sql分析参数包括:sql分析范围参数、超时时长、用户白名单列表、表的白名单列表、多分区阈值参数、查杀条件参数;根据sql分析范围参数确定待分析时间段,根据待分析时间段、以及用户实时会话信息视图,获取待分析时间段内的会话信息;其中,会话信息中包括:待分析时间段内多个会话用户分别对应的会话;将会话信息按照会话用户进行拆分,得到每一会话用户对应的会话;根据预先定义的会话对象字段,将每一会话用户对应的会话中的内容拆分到每一会话用户对应的会话对象的各字段中,得到每一会话用户对应的会话对象;根据用户白名单列表对各会话用户对应的会话对象进行过滤,得到待解析会话对象;针对每一待解析会话对象,根据表的白名单列表、多分区阈值参数、以及超时时长,得到待解析会话对象的问题sql检测结果;根据查杀条件参数、待解析会话对象的问题sql检测结果,对待解析会话对象对应会话进行处理。这样,能够提高sql语句分析效率,及时干预库中的问题sql语句,避免问题sql影响数据库的效率。



    技术特征:

    1.一种sql分析方法,其特征在于,包括:

    2.如权利要求1所述的sql分析方法,其特征在于,将会话信息按照会话用户进行拆分,得到每一会话用户对应的会话,包括:

    3.如权利要求1所述的sql分析方法,其特征在于,根据用户白名单列表对各会话用户对应的会话对象进行过滤,得到待解析会话对象,包括:

    4.如权利要求1所述的sql分析方法,其特征在于,根据预先定义的会话对象字段,将每一会话用户对应的会话中的内容拆分到每一会话用户对应的会话对象的各字段中,得到每一会话用户对应的会话对象,包括:

    5.如权利要求4所述的sql分析方法,其特征在于,会话对象字段包括:会话用户字段、会话标识字段、进程标识字段、会话sql字段;

    6.如权利要求5所述的sql分析方法,其特征在于,还包括:

    7.如权利要求5所述的sql分析方法,其特征在于,会话对象字段还包括:执行sql字段;

    8.如权利要求7所述的sql分析方法,其特征在于,查杀条件参数包括:将存在问题的会话对象对应会话进行查杀;

    9.如权利要求7所述的sql分析方法,其特征在于,查杀条件参数包括:将存在问题且包含子sql进行全表扫描的会话对象对应会话进行查杀;

    10.如权利要求9所述的sql分析方法,其特征在于,查杀条件参数还包括:将存在问题且不包含子sql进行全表扫描的会话对象对应会话进行标记;

    11.一种sql分析装置,其特征在于,包括:

    12.如权利要求11所述的sql分析装置,其特征在于,第二处理模块,具体用于删除会话信息中第一预设字符;

    13.如权利要求11所述的sql分析装置,其特征在于,过滤模块,具体用于从各会话用户对应的会话对象中,将在用户白名单列表中的会话用户对应的会话对象删除,得到待解析会话对象。

    14.如权利要求11所述的sql分析装置,其特征在于,第三处理模块,具体用于将每一会话用户对应的会话按照第二预设字符进行拆分,将拆分后的值写入每一会话用户对应的会话对象的各字段,得到每一会话用户对应的会话对象。

    15.如权利要求14所述的sql分析装置,其特征在于,会话对象字段包括:会话用户字段、会话标识字段、进程标识字段、会话sql字段;

    16.如权利要求15所述的sql分析装置,其特征在于,还包括:

    17.如权利要求15所述的sql分析装置,其特征在于,会话对象字段还包括:执行sql字段;

    18.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10任一所述方法。

    19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至10任一所述方法。

    20.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至10任一所述方法。


    技术总结
    本发明公开了一种SQL分析方法及装置,涉及大数据技术领域,其中该方法包括:配置SQL分析参数,根据SQL分析参数、用户实时会话信息视图,获取待分析时间段内的会话信息;将会话信息按照会话用户进行拆分,得到每一会话用户对应的会话;根据预先定义的会话对象字段,将每一会话用户对应的会话中的内容拆分到每一会话用户对应的会话对象的各字段中;根据SQL分析参数对各会话用户对应的会话对象进行过滤,得到待解析会话对象;针对每一待解析会话对象,根据SQL分析参数,得到待解析会话对象的问题SQL检测结果;根据待解析会话对象的问题SQL检测结果,对待解析会话对象对应会话进行处理。本发明可以提高SQL语句分析效率。

    技术研发人员:厉红阳
    受保护的技术使用者:中国建设银行股份有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-84816.html

    最新回复(0)