System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() SQL语句执行时间监测方法、系统、存储介质及电子设备技术方案_技高网

SQL语句执行时间监测方法、系统、存储介质及电子设备技术方案

技术编号:40411286 阅读:2 留言:0更新日期:2024-02-20 22:30
本发明专利技术提供一种SQL语句执行时间监测方法、系统、存储介质及电子设备,所述方法包括以下步骤:获取访问数据库的数据报文;对所述数据报文进行解析,获取SQL语句;根据所述SQL语句的请求时间和数据库返回时间,计算所述SQL语句的执行时间;对所述SQL语句进行分类,获取不同类型的SQL语句;对于每个类型的SQL语句,计算所述SQL语句的执行时间均值;根据所述执行时间均值判定所述SQL语句是否为慢SQL语句。本发明专利技术的SQL语句执行时间监测方法、系统、存储介质及电子设备基于网络抓包与SQL还原技术实现SQL语句执行时间的监测,有效提升了数据库的性能。

【技术实现步骤摘要】

本专利技术属于数据库的,特别是涉及一种sql语句执行时间监测方法、系统、存储介质及电子设备。


技术介绍

1、在大数据时代,数据库系统的数据类型与规模在不断扩增,从而给数据库管理带来了挑战。在社会生产生活中,对于数据库的应用范围逐步增大,提升数据库开发及应用的效率,是保障社会生产生活高效运转的关键。结构化查询语言(structured querylanguage,sql)是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点。应用系统或者数据库管理者通过sql语句访问数据库,数据库系统接收sql语句,根据sql语句的指令执行数据的增、删、改、查等各种操作。sql语句执行时间的长短决定了数据库性能的好坏,其值越大,表明数据库性能越差。因此,从大量的sql语句中找出慢sql,优化慢sql的执行时间,对数据库的性能有很大的作用。

2、现有技术中,监控sql语句执行时间的方法主要包括以下两种:

3、(1)采用数据库日志的方法记录每条sql语句的执行时间,从中找出执行时间长的慢sql。但是这种方式会大量消耗数据库资源,给数据库性能带来负面影响。

4、(2)在客户端安装监测程序,计算sql语句从客户端发出到数据库执行还回结果的时间间隔,从而计算sql语句的执行时间。但是这种方式无法覆盖所有sql语句执行时间的监测,只能监测少数sql语句的执行时间,具有很大局限性。


技术实现思路

1、鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种sql语句执行时间监测方法、系统、存储介质及电子设备,基于网络抓包与sql还原技术实现sql语句执行时间的监测,有效提升了数据库的性能。

2、第一方面,本专利技术提供一种sql语句执行时间监测方法,所述方法包括以下步骤:获取访问数据库的数据报文;对所述数据报文进行解析,获取sql语句;根据所述sql语句的请求时间和数据库返回时间,计算所述sql语句的执行时间;对所述sql语句进行分类,获取不同类型的sql语句;对于每个类型的sql语句,计算所述sql语句的执行时间均值;根据所述执行时间均值判定所述sql语句是否为慢sql语句。

3、在第一方面的一种实现方式中,获取访问数据库的数据报文包括以下步骤:

4、令所述数据库所连接的网络交换机的一个网卡为混杂模式;

5、基于网络抓包技术从所述网卡获取数据库的网络流量;

6、基于所述数据库的ip地址和端口,从所述网络流量中获取访问所述数据库的数据报文。

7、在第一方面的一种实现方式中,对所述数据报文进行解析,获取sql语句包括:

8、基于sql还原技术,根据tns协议对所述数据报文进行解析以获取sql语句。

9、在第一方面的一种实现方式中,对所述sql语句进行分类,获取不同类型的sql语句包括以下步骤:

10、去除所述sql语句中的查询条件和非关键内容,获取缩句后的sql语句;

11、根据所述缩句后的sql语句进行分类,获取不同类型的sql语句。

12、在第一方面的一种实现方式中,根据所述执行时间均值判定所述sql语句是否为慢sql语句包括以下步骤:

13、设定预设时间阈值;

14、当所述执行时间均值大于所述预设时间阈值时,判定所述sql语句为慢sql语句。

15、在第一方面的一种实现方式中,还包括当所述慢sql语句的执行时间均值大于sql语句执行时间均值的预设倍数时,判断所述慢sql语句的执行时间异常并发出告警信息。

16、在第一方面的一种实现方式中,还包括当所述慢sql语句的数量大于慢sql语句数量均值的预设倍数时,判断所述数据库异常并发出告警信息。

17、第二方面,本专利技术提供一种sql语句执行时间监测系统,所述系统包括获取模块、解析模块、第一计算模块、分类模块、第二计算模块和监测模块;

18、所述获取模块用于获取访问数据库的数据报文;

19、所述解析模块用于对所述数据报文进行解析,获取sql语句;

20、所述第一计算模块用于根据所述sql语句的请求时间和数据库返回时间,计算所述sql语句的执行时间;

21、所述分类模块用于对所述sql语句进行分类,获取不同类型的sql语句;

22、所述第二计算模块用于对于每个类型的sql语句,计算所述sql语句的执行时间均值;

23、所述监测模块用于根据所述执行时间均值判定所述sql语句是否为慢sql语句。

24、第三方面,本专利技术提供一种电子设备,所述电子设备包括:处理器和存储器;

25、所述存储器用于存储计算机程序;

26、所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的sql语句执行时间监测方法。

27、第四方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该程序被电子设备执行时实现上述的sql语句执行时间监测方法。

28、如上所述,本专利技术所述的sql语句执行时间监测方法、系统、存储介质及电子设备,具有以下有益效果:

29、(1)通过网络抓包与sql还原技术实现sql语句执行时间的监测,无需数据的日志记录,也不需要在客户端上安装程序;

30、(2)通过网络自动获取每条sql语句的执行时间,并通过缩句将大量类似的sql语句合并成同一类sql语句,从而优化了sql语句执行时间的监测,尤其适用于业务系统访问频繁、数据库访问量大的应用场景;

31、(3)不消耗数据库资源,不影响数据性能,且能够针对所有访问数据库的sql语句进行监测,覆盖面全。

本文档来自技高网...

【技术保护点】

1.一种SQL语句执行时间监测方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的SQL语句执行时间监测方法,其特征在于:获取访问数据库的数据报文包括以下步骤:

3.根据权利要求1所述的SQL语句执行时间监测方法,其特征在于:对所述数据报文进行解析,获取SQL语句包括:

4.根据权利要求1所述的SQL语句执行时间监测方法,其特征在于:对所述SQL语句进行分类,获取不同类型的SQL语句包括以下步骤:

5.根据权利要求1所述的SQL语句执行时间监测方法,其特征在于:根据所述执行时间均值判定所述SQL语句是否为慢SQL语句包括以下步骤:

6.根据权利要求1所述的SQL语句执行时间监测方法,其特征在于:还包括当所述慢SQL语句的执行时间均值大于SQL语句执行时间均值的预设倍数时,判断所述慢SQL语句的执行时间异常并发出告警信息。

7.根据权利要求1所述的SQL语句执行时间监测方法,其特征在于:还包括当所述慢SQL语句的数量大于慢SQL语句数量均值的预设倍数时,判断所述数据库异常并发出告警信息。

<p>8.一种SQL语句执行时间监测系统,其特征在于,所述系统包括获取模块、解析模块、第一计算模块、分类模块、第二计算模块和监测模块;

9.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被电子设备执行时实现权利要求1至7中任一项所述的SQL语句执行时间监测方法。

...

【技术特征摘要】

1.一种sql语句执行时间监测方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的sql语句执行时间监测方法,其特征在于:获取访问数据库的数据报文包括以下步骤:

3.根据权利要求1所述的sql语句执行时间监测方法,其特征在于:对所述数据报文进行解析,获取sql语句包括:

4.根据权利要求1所述的sql语句执行时间监测方法,其特征在于:对所述sql语句进行分类,获取不同类型的sql语句包括以下步骤:

5.根据权利要求1所述的sql语句执行时间监测方法,其特征在于:根据所述执行时间均值判定所述sql语句是否为慢sql语句包括以下步骤:

6.根据权利要求1所述的sql语句执行时间监测方法,其特征在于:还包括...

【专利技术属性】
技术研发人员:庞朝富姚文嵩
申请(专利权)人:上海卫盾信息科技有限公司
类型:发明
国别省市:

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

1