CN117873831A - Sql性能监控方法、装置、计算机设备及存储介质 - Google Patents

Sql性能监控方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117873831A
CN117873831A CN202410042694.9A CN202410042694A CN117873831A CN 117873831 A CN117873831 A CN 117873831A CN 202410042694 A CN202410042694 A CN 202410042694A CN 117873831 A CN117873831 A CN 117873831A
Authority
CN
China
Prior art keywords
sql
target
log information
session request
unique identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410042694.9A
Other languages
English (en)
Inventor
刘灿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202410042694.9A priority Critical patent/CN117873831A/zh
Publication of CN117873831A publication Critical patent/CN117873831A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例属于计算机技术领域及金融科技领域,涉及一种SQL性能监控方法,包括:通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。本申请提高了SQL性能监控的效率。

Description

SQL性能监控方法、装置、计算机设备及存储介质
技术领域
本申请涉及计算机技术领域及金融科技领域,应用于针对金融科技相关行业的业务Web应用程序进行SQL性能监控的场景中,尤其涉及一种SQL性能监控方法、装置、计算机设备及存储介质。
背景技术
目前,随着金融科技的发展,在其相关行业中,各种各样的业务Web应用程序层出不穷,这也导致了这些业务Web应用程序所对应的业务SQL(Structured Query Language,结构化查询语言)较为复杂且难以理解。
因此,在高并发的情况下,此类业务Web应用程序比较容易产生性能问题,而由于金融科技的相关行业对于业务Web应用程序性能的要求较为严格,所以需要测试人员或者开发人员及时地对产生的性能问题进行分析和处理。
传统的解决方案中,测试人员或者开发人员需要等待某项业务完成之后,再对业务Web应用程序的业务SQL或者日志记录进行查看,以对SQL性能进行监控,确定是否存在性能问题。然而,这种方式存在一定的滞后性,既无法实现SQL性能的实时监控,也无法实现性能问题的快速定位,导致SQL性能监控的效率较低。
发明内容
本申请实施例的目的在于提出一种SQL性能监控方法、装置、计算机设备及存储介质,以解决针对金融科技相关行业的业务Web应用程序进行SQL性能监控时效率较低的技术问题。
为了解决上述技术问题,本申请实施例提供一种SQL性能监控方法,采用了如下所述的技术方案:
一种SQL性能监控方法,包括下述步骤:
通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;
通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;
将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;
当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;
将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。
进一步的,所述将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库的步骤,具体包括:
开启每个所述会话请求对应的线程,并在所述线程中创建ThreadLocal对象,根据所述ThreadLocal对象关联所述唯一标识和所述日志信息;
建立所述信息库,并将各个所述线程存储至所述信息库。
进一步的,所述信息库包括缓存层和持久层,所述建立所述信息库,并将各个所述线程存储至所述信息库的步骤,具体包括:
建立所述信息库,依次将各个所述线程缓存至所述缓存层,并实时检测所述缓存层中的线程数量;
当所述线程数量大于预设阈值时,将所述缓存层中的所有线程转存至所述持久层。
进一步的,所述通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息的步骤,具体包括:
根据所述SQL全局***对每个所述SQL语句进行解析和参数赋值,确定每个所述SQL语句对应的实际运行语句和执行时间;
将所述实际运行语句和所述执行时间作为所述日志信息。
进一步的,所述SQL性能监控方法应用于服务器,在所述通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识的步骤之前,还包括:
在所述服务器配置所述Web应用全局***,并配置当前ORM框架对应的所述SQL全局***,所述当前ORM框架包括MyBatis、Hibernate、Srping JdbcTemplate以及MongoTemplate。
进一步的,其特征在于,所述将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息的步骤,具体包括:
对所述目标日志信息进行数据清洗,得到可视化数据;
将所述可视化数据发送至所述目标用户端,以使得所述目标用户端根据所述可视化数据生成可视化页面并展示。
进一步的,在所述对所述目标日志信息进行数据清洗,得到可视化数据的步骤之后,还包括:
根据所述可视化数据和预设通知模板,生成所述查询请求对应的通知邮件;
将所述通知邮件发送至预设邮箱。
为了解决上述技术问题,本申请实施例还提供一种SQL性能监控装置,采用了如下所述的技术方案:
一种SQL性能监控装置,包括:
第一拦截模块,用于通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;
第二拦截模块,用于通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;
关联存储模块,用于将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;
查询模块,用于当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;
传输模块,用于将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的SQL性能监控方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的SQL性能监控方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请公开的SQL性能监控方法,通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;而后通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;再将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。本申请通过预先配置的***,可以针对业务Web应用程序的每个会话请求进行SQL相关信息的拦截和记录,而后可以通过数据查询及时查看特定会话请求的SQL相关信息,从而实现SQL相关信息的实时监控和快速定位,提高了SQL性能监控的效率。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的SQL性能监控方法的一个实施例的流程图;
图3是根据本申请的SQL性能监控装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的SQL性能监控方法一般由服务器执行,相应地,SQL性能监控装置一般设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的SQL性能监控方法的一个实施例的流程图。所述的SQL性能监控方法,包括以下步骤:
步骤S201,通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;
需要指出的是,SQL性能监控方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式接收或者传输数据。上述无线连接方式可以包括但不限于3G/4G/5G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。
在本实施例中,为了针对金融科技相关行业的业务Web应用程序进行SQL性能监控,服务器所运行的SQL性能监控方法,首先可以通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个会话请求的唯一标识。具体地,对于金融科技相关行业而言,业务Web应用程序是与业务相关的利用网络浏览器和网络技术在互联网上执行任务的计算机程序,任意用户端都可以通过浏览器向服务器发送会话请求,以对相关业务进行访问,而通过增加自定义***的方式,即可在服务器预先配置Web应用全局***,并通过该Web应用全局***,针对运行目标Web应用程序的用户端的每个会话请求进行拦截,并记录每个会话请求唯一的Session ID,以作为每个会话请求的唯一标识,例如,对于银行业而言,任意用户端使用网银相关的业务Web应用程序时,可以拦截会话请求;对于保险业而言,任意用户端使用投保相关的业务Web应用程序时,也可以拦截会话请求。
可以理解的是,每个会话请求都存在唯一的Session ID,Session ID即为每个会话请求的Key,可以用来作为每个会话请求的身份标识。
步骤S202,通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;
在本实施例中,在通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个会话请求的唯一标识后,还需要通过预配置的SQL全局***拦截每个会话请求对应的任一SQL语句,并确定每个SQL语句对应的日志信息。具体地,通过增加自定义***的方式,还可以在服务器预先配置与当前的ORM框架相对应的SQL全局***,该全局SQL***可以在每个会话请求对应的若干SQL语句中选择任一SQL语句进行拦截,并确定每个拦截的SQL语句对应的日志信息,其中,日志信息包括了SQL语句对应的实际运行语句和执行时间,通过SQL全局***可以对每个SQL语句进行解析和参数赋值,以确定每个SQL语句对应的实际运行语句和执行时间,再将每个SQL语句对应的实际运行语句和执行时间作为其对应的日志信息进行记录。
需要说明的是,ORM(Object Relation Mapping,对象关系映射)框架,指的是将一个Java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可以操作数据库中的表。
步骤S203,将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;
在本实施例中,记录每个会话请求的唯一标识并确定每个SQL语句对应的日志信息后,即可将每个会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库。具体地,首先可以开启每个会话请求对应的线程,并在每个线程中创建ThreadLocal对象,根据ThreadLocal对象关联每个会话请求的唯一标识和对应的日志信息,而后即可建立信息库,并将各个线程存储至该信息库。
可选地,为了提高效率以及减小服务器压力,该信息库可以分为缓存层和持久层,各个线程可以依次缓存至缓存层,并且可以在缓存层中的线程数量达到一定阈值后,将缓存层中的线程转存至持久层。
步骤S204,当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;
在本实施例中,得到信息库后,当接收到携带有目标唯一标识的查询请求时,即可根据目标唯一标识在信息库中查询关联的目标日志信息。具体地,由于开发人员或测试人员需要对SQL性能进行监控,因此可以针对特定的会话请求,通过用户端向服务器发送查询请求,可以将该会话请求作为目标会话请求,该查询请求携带了目标会话请求的目标唯一标识,根据目标唯一标识,即可在信息库中查询关联的日志信息,作为目标日志信息,后续可以将目标日志信息传输至查询请求对应的用户端进行展示。
可选地,在目标用户端发送查询请求的过程中,为了对某一批会话请求进行SQL性能监控,还可以通过设置自动化脚本的形式,使目标用户端可以对多个SQL语句对应的日志信息进行轮询,并自动返回至目标用户端,从而提高SQL性能监控的智能性。
步骤S205,将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。
在本实施例中,查询到目标日志信息后,即可将目标日志信息传输至查询请求对应的目标用户端,以使得目标用户端可以展示目标日志信息。具体地,通过查询请求查询得到目标日志信息后,可以所述目标日志信息进行数据清洗,得到可视化数据,而后将可视化数据发送至查询请求对应的目标用户端,以使得目标用户端可以根据可视化数据生成可视化页面,并进行展示。
本申请通过预先配置的***,可以针对业务Web应用程序的每个会话请求进行SQL相关信息的拦截和记录,而后可以通过数据查询及时查看特定会话请求的SQL相关信息,从而实现SQL相关信息的实时监控和快速定位,提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,上述将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库的步骤包括:
开启每个所述会话请求对应的线程,并在所述线程中创建ThreadLocal对象,根据所述ThreadLocal对象关联所述唯一标识和所述日志信息;
建立所述信息库,并将各个所述线程存储至所述信息库。
在本实施例中,记录每个会话请求的唯一标识并确定每个SQL语句对应的日志信息后,即可开启每个会话请求对应的线程,并在每个会话请求对应的线程中创建ThreadLocal对象,并根据ThreadLocal对象关联每个会话请求的唯一标识和对应的日志信息,而后即可建立信息库,并将各个线程存储至信息库。具体地,为了避免高并发时产生干扰,可以针对每个会话请求开启一个线程,并且在线程中将ThreadLocal对象作为局部变量,通过ThreadLocal对象将每个会话请求的唯一标识和对应的日志信息关联起来,再建立信息库,从而将各个线程存储至信息库中。
可以理解的是,由于多线程访问同一个共享变量的时候容易出现并发问题,所以为了保证线程安全性,可以采用ThreadLocal,ThreadLocal是一种局部变量,可以存在于每个线程内,可以规避多线程访问出现线程不安全的情况。
本申请通过线程变量对会话请求的唯一标识和对应的日志信息进行关联存储,可以避免高并发情况下的安全性问题,从而使得后续可以实现SQL相关信息的实时监控和快速定位,提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,上述信息库包括缓存层和持久层,所述建立所述信息库,并将各个所述线程存储至所述信息库的步骤包括:
建立所述信息库,依次将各个所述线程缓存至所述缓存层,并实时检测所述缓存层中的线程数量;
当所述线程数量大于预设阈值时,将所述缓存层中的所有线程转存至所述持久层。
在本实施例中,信息库包括了缓存层和持久层,开启每个会话请求对应的线程,并关联每个会话请求的唯一标识和对应的日志信息后,即可建立信息库,依次将各个线程缓存至缓存层,此外,还需要实时检测缓存层中的线程数量,当线程数量大于预设阈值时,将缓存层中的所有线程转存至持久层。具体地,为了提高数据的读取速度,可以采用缓存的形式,因此可以建立包括缓存层和持久层的信息库,并预先设定缓存层中线程数量的阈值,每当有会话请求对应的线程开启并关联了唯一标识和日志信息后,即可将该线程缓存至缓存层,而当缓存层中的线程数量达到预设阈值后,即可将缓存层中的所有线程转存至持久层,避免缓存的线程过多导致服务器的压力增加。
本申请通过建立包括缓存层和持久层的信息库,可以通过缓存层对各个会话请求的线程进行缓存,并在线程过多时可以转存至持久层中,从而提高了数据读取的速度,并降低了服务器的压力,提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,上述通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息的步骤包括:
根据所述SQL全局***对每个所述SQL语句进行解析和参数赋值,确定每个所述SQL语句对应的实际运行语句和执行时间;
将所述实际运行语句和所述执行时间作为所述日志信息。
在本实施例中,在通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个会话请求的唯一标识后,还可以根据预配置的SQL全局***对每个SQL语句进行解析和参数赋值,确定每个SQL语句对应的实际运行语句和执行时间,从而将实际运行语句和执行时间作为日志信息。具体地,由于SQL语句在数据库中执行时,需要先将其转换为实际运行语句,所以对于每个已拦截SQL语句而言,也需要对其进行解析和参数赋值,将每个SQL语句转换为对应的实际运行语句,并确定其在数据库中的执行时间,从而将实际运行语句和执行时间作为日志信息进行记录。
本申请通过拦截SQL语句并对其进行解析和参数赋值,从而对SQL语句的日志信息进行记录,后续即可与会话请求的唯一标识进行关联存储,以通过数据查询及时查看特定会话请求的SQL相关信息,实现SQL相关信息的实时监控和快速定位,并提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,上述SQL性能监控方法应用于服务器,在所述通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识的步骤之前,还包括:
在所述服务器配置所述Web应用全局***,并配置当前ORM框架对应的所述SQL全局***,所述当前ORM框架包括MyBatis、Hibernate、Srping JdbcTemplate以及MongoTemplate。
在本实施例中,通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个会话请求的唯一标识之前,需要在服务器配置Web应用全局***,并配置当前ORM框架对应的SQL全局***,其中,当前ORM框架可以包括MyBatis、Hibernate、Srping JdbcTemplate以及MongoTemplate。具体地,为了运行SQL性能监控方法,首先需要通过自定义***的方式,在服务器配置Web应用全局***和SQL全局***,而该SQL全局***与当前ORM框架对应,ORM框架为对象关系映射框架,可以将一个Java中的对象与关系型数据库中的表建立映射关系,从而通过操作对象来操作数据库中的表,本实施例中,当前ORM框架可以为MyBatis、Hibernate、Srping JdbcTemplate以及MongoTemplate中的任意一种。
本申请通过预先配置的***,使得后续可以针对业务Web应用程序的每个会话请求进行SQL相关信息的拦截和记录,而后可以通过数据查询及时查看特定会话请求的SQL相关信息,从而实现SQL相关信息的实时监控和快速定位,并提高SQL性能监控的效率。
在本实施例的一些可选的实现方式中,上述将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息的步骤包括:
对所述目标日志信息进行数据清洗,得到可视化数据;
将所述可视化数据发送至所述目标用户端,以使得所述目标用户端根据所述可视化数据生成可视化页面并展示。
在本实施例中,查询到目标日志信息后,即可对目标日志信息进行数据清洗,得到可视化数据,并将可视化数据发送至目标用户端,以使得目标用户端根据可视化数据生成可视化页面并展示。具体地,为了对目标日志信息进行展示,首先需要对其进行数据清洗,从而得到可视化数据,例如文本、表格的形式,而后即可将可视化数据发送至查询请求对应的目标用户端,使得目标用户端根据可视化数据生成可视化页面并直接展示。
本申请通过数据查询及时查看特定会话请求的SQL相关信息后,可以直接将SQL相关信息传输至用户端进行可视化的展示,从而可以实现SQL相关信息的实时监控和快速定位,提高SQL性能监控的效率。
在本实施例的一些可选的实现方式中,在上述对所述目标日志信息进行数据清洗,得到可视化数据的步骤之后,还包括:
根据所述可视化数据和预设通知模板,生成所述查询请求对应的通知邮件;
将所述通知邮件发送至预设邮箱。
在本实施例中,在对目标日志信息进行数据清洗,得到可视化数据后,还可以根据可视化数据和预设通知模板,生成查询请求对应的通知邮件,并将通知邮件发送至预设邮箱。具体地,对于SQL相关信息,除了进行用户端展示之外,还可以异步通过邮件进行通知,服务器预先设有通知模板和邮箱,当得到可视化数据后,可以根据可视化数据和预设通知模板生成通知邮件,并将通知邮件发送至预设邮箱,以对相关人员进行通知。
本申请通过数据查询得到SQL相关信息对应的可视化数据后,还可以以邮件形式异步通知相关人员进行查看,从而可以实现对于SQL相关信息的实时监控和快速定位,提高SQL性能监控的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种SQL性能监控装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的SQL性能监控装置300包括:第一拦截模块301、第二拦截模块302、关联存储模块303、查询模块304以及传输模块305。其中:
第一拦截模块301,用于通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;
第二拦截模块302,用于通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;
关联存储模块303,用于将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;
查询模块304,用于当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;
传输模块305,用于将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。
本申请提供的SQL性能监控装置,通过预先配置的***,可以针对业务Web应用程序的每个会话请求进行SQL相关信息的拦截和记录,而后可以通过数据查询及时查看特定会话请求的SQL相关信息,从而实现SQL相关信息的实时监控和快速定位,提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,关联存储模块303还用于:
开启每个所述会话请求对应的线程,并在所述线程中创建ThreadLocal对象,根据所述ThreadLocal对象关联所述唯一标识和所述日志信息;
建立所述信息库,并将各个所述线程存储至所述信息库。
本申请提供的SQL性能监控装置,通过线程变量对会话请求的唯一标识和对应的日志信息进行关联存储,可以避免高并发情况下的安全性问题,从而使得后续可以实现SQL相关信息的实时监控和快速定位,提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,上述信息库包括缓存层和持久层,关联存储模块303还用于:
建立所述信息库,依次将各个所述线程缓存至所述缓存层,并实时检测所述缓存层中的线程数量;
当所述线程数量大于预设阈值时,将所述缓存层中的所有线程转存至所述持久层。
本申请提供的SQL性能监控装置,通过建立包括缓存层和持久层的信息库,可以通过缓存层对各个会话请求的线程进行缓存,并在线程过多时可以转存至持久层中,从而提高了数据读取的速度,并降低了服务器的压力,提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,第二拦截模块302还用于:
根据所述SQL全局***对每个所述SQL语句进行解析和参数赋值,确定每个所述SQL语句对应的实际运行语句和执行时间;
将所述实际运行语句和所述执行时间作为所述日志信息。
本申请提供的SQL性能监控装置,通过拦截SQL语句并对其进行解析和参数赋值,从而对SQL语句的日志信息进行记录,后续即可与会话请求的唯一标识进行关联存储,以通过数据查询及时查看特定会话请求的SQL相关信息,实现SQL相关信息的实时监控和快速定位,并提高了SQL性能监控的效率。
在本实施例的一些可选的实现方式中,上述SQL性能监控方法应用于服务器,SQL性能监控装置300还用于:
在所述服务器配置所述Web应用全局***,并配置当前ORM框架对应的所述SQL全局***,所述当前ORM框架包括MyBatis、Hibernate、Srping JdbcTemplate以及MongoTemplate。
本申请提供的SQL性能监控装置,通过预先配置的***,使得后续可以针对业务Web应用程序的每个会话请求进行SQL相关信息的拦截和记录,而后可以通过数据查询及时查看特定会话请求的SQL相关信息,从而实现SQL相关信息的实时监控和快速定位,并提高SQL性能监控的效率。
在本实施例的一些可选的实现方式中,传输模块305还用于:
对所述目标日志信息进行数据清洗,得到可视化数据;
将所述可视化数据发送至所述目标用户端,以使得所述目标用户端根据所述可视化数据生成可视化页面并展示。
本申请提供的SQL性能监控装置,通过数据查询及时查看特定会话请求的SQL相关信息后,可以直接将SQL相关信息传输至用户端进行可视化的展示,从而可以实现SQL相关信息的实时监控和快速定位,提高SQL性能监控的效率。
在本实施例的一些可选的实现方式中,SQL性能监控装置300还用于:
根据所述可视化数据和预设通知模板,生成所述查询请求对应的通知邮件;
将所述通知邮件发送至预设邮箱。
本申请提供的SQL性能监控装置,通过数据查询得到SQL相关信息对应的可视化数据后,还可以以邮件形式异步通知相关人员进行查看,从而可以实现对于SQL相关信息的实时监控和快速定位,提高SQL性能监控的效率。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过***总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作***和各类应用软件,例如SQL性能监控方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述SQL性能监控方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请提供的计算机设备,通过预先配置的***,可以针对业务Web应用程序的每个会话请求进行SQL相关信息的拦截和记录,而后可以通过数据查询及时查看特定会话请求的SQL相关信息,从而实现SQL相关信息的实时监控和快速定位,提高了SQL性能监控的效率。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的SQL性能监控方法的步骤。
本申请提供的计算机可读存储介质,通过预先配置的***,可以针对业务Web应用程序的每个会话请求进行SQL相关信息的拦截和记录,而后可以通过数据查询及时查看特定会话请求的SQL相关信息,从而实现SQL相关信息的实时监控和快速定位,提高了SQL性能监控的效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种SQL性能监控方法,其特征在于,包括下述步骤:
通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;
通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;
将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;
当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;
将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。
2.根据权利要求1所述的SQL性能监控方法,其特征在于,所述将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库的步骤,具体包括:
开启每个所述会话请求对应的线程,并在所述线程中创建ThreadLocal对象,根据所述ThreadLocal对象关联所述唯一标识和所述日志信息;
建立所述信息库,并将各个所述线程存储至所述信息库。
3.根据权利要求2所述的SQL性能监控方法,其特征在于,所述信息库包括缓存层和持久层,所述建立所述信息库,并将各个所述线程存储至所述信息库的步骤,具体包括:
建立所述信息库,依次将各个所述线程缓存至所述缓存层,并实时检测所述缓存层中的线程数量;
当所述线程数量大于预设阈值时,将所述缓存层中的所有线程转存至所述持久层。
4.根据权利要求1所述的SQL性能监控方法,其特征在于,所述通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息的步骤,具体包括:
根据所述SQL全局***对每个所述SQL语句进行解析和参数赋值,确定每个所述SQL语句对应的实际运行语句和执行时间;
将所述实际运行语句和所述执行时间作为所述日志信息。
5.根据权利要求1所述的SQL性能监控方法,其特征在于,所述SQL性能监控方法应用于服务器,在所述通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识的步骤之前,还包括:
在所述服务器配置所述Web应用全局***,并配置当前ORM框架对应的所述SQL全局***,所述当前ORM框架包括MyBatis、Hibernate、Srping JdbcTemplate以及MongoTemplate。
6.根据权利要求1至5任一项所述的SQL性能监控方法,其特征在于,所述将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息的步骤,具体包括:
对所述目标日志信息进行数据清洗,得到可视化数据;
将所述可视化数据发送至所述目标用户端,以使得所述目标用户端根据所述可视化数据生成可视化页面并展示。
7.根据权利要求6所述的SQL性能监控方法,其特征在于,在所述对所述目标日志信息进行数据清洗,得到可视化数据的步骤之后,还包括:
根据所述可视化数据和预设通知模板,生成所述查询请求对应的通知邮件;
将所述通知邮件发送至预设邮箱。
8.一种SQL性能监控装置,其特征在于,包括:
第一拦截模块,用于通过预配置的Web应用全局***拦截目标Web应用程序的每个会话请求,并记录每个所述会话请求的唯一标识;
第二拦截模块,用于通过预配置的SQL全局***拦截每个所述会话请求对应的任一SQL语句,并确定每个所述SQL语句对应的日志信息;
关联存储模块,用于将每个所述会话请求的唯一标识和对应的日志信息关联,并按照线程变量进行存储,得到信息库;
查询模块,用于当接收到携带有目标唯一标识的查询请求时,根据所述目标唯一标识在所述信息库中查询关联的目标日志信息;
传输模块,用于将所述目标日志信息传输至所述查询请求对应的目标用户端,以使得所述目标用户端展示所述目标日志信息。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的SQL性能监控方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的SQL性能监控方法的步骤。
CN202410042694.9A 2024-01-10 2024-01-10 Sql性能监控方法、装置、计算机设备及存储介质 Pending CN117873831A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410042694.9A CN117873831A (zh) 2024-01-10 2024-01-10 Sql性能监控方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410042694.9A CN117873831A (zh) 2024-01-10 2024-01-10 Sql性能监控方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117873831A true CN117873831A (zh) 2024-04-12

Family

ID=90580624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410042694.9A Pending CN117873831A (zh) 2024-01-10 2024-01-10 Sql性能监控方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117873831A (zh)

Similar Documents

Publication Publication Date Title
CN113254445B (zh) 实时数据存储方法、装置、计算机设备及存储介质
CN113010542B (zh) 业务数据处理方法、装置、计算机设备及存储介质
CN107657155B (zh) 用于鉴定用户操作权限的方法和装置
CN117094729A (zh) 请求处理方法、装置、计算机设备及存储介质
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN116450723A (zh) 数据提取方法、装置、计算机设备及存储介质
CN111475388A (zh) 数据推送的测试方法、装置、计算机设备及存储介质
CN116661936A (zh) 页面数据的处理方法、装置、计算机设备及存储介质
CN117873831A (zh) Sql性能监控方法、装置、计算机设备及存储介质
CN116541417A (zh) 批量数据处理方法、装置、计算机设备及存储介质
CN117853246A (zh) 保单处理方法、装置、计算机设备及存储介质
CN116756163A (zh) 一种数据同步改进方法、装置、设备及其存储介质
CN117217684A (zh) 指标数据的处理方法、装置、计算机设备及存储介质
CN117851252A (zh) 一种接口异常处理方法、装置、设备及其存储介质
CN117271156A (zh) 一种消息传递方法、装置、设备及其存储介质
CN116860644A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN116662418A (zh) 基于配置化的报表实现方法、装置、设备及其存储介质
CN117251468A (zh) 查询处理方法、装置、计算机设备及存储介质
CN117407191A (zh) 数据处理方法、***、计算机设备及存储介质
CN117271635A (zh) 一种清单导出方法、装置、计算机设备及存储介质
CN114969482A (zh) 在线配置接口自动完成请求的方法、及其相关设备
CN117579457A (zh) 一种业务逻辑隔离方法、装置、计算机设备及存储介质
CN117278623A (zh) 请求数据的处理方法、装置、计算机设备及存储介质
CN117194032A (zh) 一种任务执行方法、装置、设备及其存储介质
CN117111957A (zh) 代码生成方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination