慢SQL语句的性能分析方法、装置、系统、设备及介质与流程

xiaoxiao9月前  58


本公开涉及计算机,具体涉及一种慢sql语句的性能分析方法、装置、系统、设备及介质。


背景技术:

1、数据库作为业务系统开发过程中常用的一种保存数据的方式,业务操作常需要对数据库进行频繁的sql操作。

2、当sql操作时间过长时,反馈到业务方就是用户体验差,操作长时间无反应,针对这种sql操作时间过长的行为称为慢sql。当慢sql发生时,需要对其执行情况进行及时的记录,方便后续开发人员快速定位到慢sql发生原因。

3、现有技术中通常采用日志的方式进行查询,工作量大且查询繁琐。


技术实现思路

1、针对上述情况,本申请实施例提供了一种慢sql语句的性能分析方法、装置、系统、设备及介质,以克服或者部分克服现有技术的不足。

2、第一方面,本申请实施例提供了慢sql语句的性能分析方法,所述方法通过sql性能分析系统实现,所述sql性能分析系统包括依次连接的sql拦截器、消息中间件、性能分析服务器、以及数据库,其中,所述sql拦截器部署于业务系统中;

3、所述方法应用于所述性能分析服务器,所述方法包括:

4、从所述消息中间件获取所述慢sql语句以及对应执行信息,其中,所述慢sql语句以及对应的执行信息是所述sql拦截器拦截到达所述业务系统的sql语句,执行所述sql语句并记录所述sql语句的执行信息,根据所述执行信息确定出若干慢sql语句,以及将所述慢sql语句和对应的执行信息推送至所述消息中间件的;

5、根据所述执行信息对所述sql语句进行性能分析,并将分析结果保存于所述数据库中,以供查询。

6、第二方面,本申请实施例还提供了一种慢sql语句的性能分析装置,所述装置包括:

7、获取单元,用于从所述消息中间件获取所述慢sql语句以及对应执行信息,其中,所述慢sql语句以及对应的执行信息是所述sql拦截器拦截到达所述业务系统的sql语句,执行所述sql语句并记录所述sql语句的执行信息,根据所述执行信息确定出若干慢sql语句,以及将所述慢sql语句和对应的执行信息推送至所述消息中间件的;

8、分析单元,用于根据所述执行信息对所述sql语句进行性能分析,并将分析结果保存于所述数据库中,以供查询。

9、第三方面,本申请实施例还提供了一种sql性能分析系统,所述sql性能分析系统包括依次连接的sql拦截器、消息中间件、性能分析服务器、以及数据库,其中,所述sql拦截器部署于业务系统中,所述性能分析服务器部署有上述的慢sql语句的性能分析装置;

10、所述sql拦截器,用于拦截到达所述业务系统的sql语句,执行所述sql语句并记录所述sql语句的执行信息,根据所述执行信息确定出若干慢sql语句,以及将所述慢sql语句和对应的执行信息推送至所述消息中间件;

11、所述消息中间件,用于存储所述sql拦截器的慢sql语句和对应的执行信息,以及用于将所述慢sql语句和对应的执行信息推送至所述性能分析服务器;

12、所述数据库,用于存储所述性能分析服务器发送的分析结果。

13、第四方面,本申请实施例还提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行上述任一所述的慢sql语句的性能分析方法。

14、第五方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行上述任一所述的慢sql语句的性能分析方法。

15、本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

16、本申请设计了一种sql性能分析系统,其包括依次连接的sql拦截器、消息中间件、性能分析服务器、以及数据库,并且将sql拦截器增设在业务系统中,当有sql语句到达业务系统时,会被sql拦截器拦截下来,在sql语句执行完毕后,sql拦截器会记录sql语句的执行情况,并根据执行情况确定出sql语句中的慢sql语句,并且将慢sql语句和对应的执行情况信息发送至消息中间件中,性能分析服务器可以从消息中间件获取到慢sql语句以及对应的执行情况信息,并根据执行信息对sql语句进行性能分析,并将分析结果保存于数据库中,开发人员直接从db数据库中拉取慢sql信息,针对分析结果优化相关代码逻辑。本申请通过在业务系统中增设sql拦截器,对sql语句进行拦截和执行,获取sql语句的执行情况信息,从而确定出其中的慢sql语句,并将慢sql语句和对应的执行情况发送到消息中间件中,以供性能分析服务器对慢sql语句进行性能分析,本申请实现了慢sql语句的自动识别,能够实时获取到慢sql语句具体的执行情况;且通过消息中间件的设置,对于慢sql的收集和分析进行解耦,有效的避免了收集和分析动作对业务系统的影响;将性能分析结果存储于数据库中,可供开发人员随时调用,给予开发人员优化代码逻辑提供可靠的指导意义。



技术特征:

1.一种慢sql语句的性能分析方法,其特征在于,所述方法通过sql性能分析系统实现,所述sql性能分析系统包括依次连接的sql拦截器、消息中间件、性能分析服务器、以及数据库,其中,所述sql拦截器部署于业务系统中;

2.根据权利要求1所述的方法,其特征在于,所述执行信息至少包括所述sql语句的执行开始时间和执行结束时间;所述慢sql语句是根据所述执行信息根据下述方法确定的:

3.根据权利要求1所述的方法,其特征在于,所述执行信息包括:所述sql语句的执行开始时间、执行结束时间、执行耗时、所属应用、业务系统物理地址、以及影响数据量。

4.根据权利要求3所述的方法,其特征在于,所述根据所述执行信息对所述sql语句进行性能分析,包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述sql拦截器集成于jar包,将所述jar包嵌入所述业务系统中,以将所述sql部署于所述业务系统中。

6.根据权利要求1所述的方法,其特征在于,所述消息中间件为kafka、flume、twitter、以及zeromq中的任意一种。

7.一种慢sql语句的性能分析装置,其特征在于,所述装置包括:

8.一种sql性能分析系统,其特征在于,所述sql性能分析系统包括依次连接的sql拦截器、消息中间件、性能分析服务器、以及数据库,其中,所述sql拦截器部署于业务系统中,所述性能分析服务器部署有权利要求7所述的慢sql语句的性能分析装置;

9.一种电子设备,包括:

10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1~6任一所述的慢sql语句的性能分析方法。


技术总结
本申请涉及一种慢SQL语句的性能分析方法、装置、系统、设备及介质,其方法包括从消息中间件获取慢SQL语句以及对应执行信息,慢SQL语句以及对应的执行信息是SQL拦截器拦截到达业务系统的SQL语句,执行SQL语句并记录SQL语句的执行信息,根据执行信息确定出若干慢SQL语句,以及将慢SQL语句和对应的执行信息推送至消息中间件的;根据执行信息对SQL语句进行性能分析,并将分析结果保存于数据库中,以供查询。本申请实现了慢SQL语句的自动识别,能够实时获取到慢SQL语句具体的执行情况;且通过消息中间件的设置,对于慢SQL的收集和分析进行解耦,将性能分析结果存储于数据库中,可供开发人员随时调用。

技术研发人员:蒿兴旺
受保护的技术使用者:平安壹钱包电子商务有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)