CN106294075B - 一种对sql进行监控的方法、装置及系统 - Google Patents
一种对sql进行监控的方法、装置及系统 Download PDFInfo
- Publication number
- CN106294075B CN106294075B CN201610682615.6A CN201610682615A CN106294075B CN 106294075 B CN106294075 B CN 106294075B CN 201610682615 A CN201610682615 A CN 201610682615A CN 106294075 B CN106294075 B CN 106294075B
- Authority
- CN
- China
- Prior art keywords
- sql
- record information
- session request
- session
- client
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012544 monitoring process Methods 0.000 claims abstract description 31
- 230000033001 locomotion Effects 0.000 claims description 33
- 230000002085 persistent effect Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 1
- 230000000903 blocking effect Effects 0.000 abstract description 4
- 238000004458 analytical method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000019504 cigarettes Nutrition 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种对SQL进行监控的方法、装置及系统,该方法包括:利用服务器端配置的web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;利用服务器端配置的全局SQL拦截器,针对每一个会话请求对应的至少一个SQL,记录每一个SQL对应的记录信息;根据每一个会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;基于客户端针对目标会话请求的轮询请求,将存储的目标会话请求对应的记录信息提供于客户端。由于可以实时拦截每一个会话请求,并对其相应记录信息进行分别存储,故本方案能够实现SQL相关信息的实时监控。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种对SQL进行监控的方法、装置及系统。
背景技术
在当前的复杂行业业务WEB应用下,相应的业务SQL(Structured QueryLanguage,结构化查询语言)是极其复杂且难以理解的。尤其在高并发情况下,伴随着性能问题的产生,测试或者开发实施人员需要对业务实现进行分析处理。
目前,工作人员通常需要待客户做完关键业务之后,通过翻看程序或者日志记录进行分析查看。
可以看出,现有的实现方式缺乏实时性,故不能实现SQL相关信息的实时监控。
发明内容
本发明提供了一种对SQL进行监控的方法、装置及系统,能够实现SQL相关信息的实时监控。
为了达到上述目的,本发明是通过如下技术方案实现的:
第一方面,本发明提供了一种对SQL进行监控的方法,应用于服务器端,在所述服务器端配置web应用全局拦截器,并配置与当前的ORM框架相对应的全局SQL拦截器,还包括:
利用所述web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;
利用所述全局SQL拦截器,针对每一个所述会话请求对应的至少一个SQL,记录各SQL对应的记录信息;
根据每一个所述会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;
基于所述客户端针对目标会话请求的轮询请求,将存储的所述目标会话请求对应的记录信息提供于所述客户端。
进一步地,每一个所述会话请求对应的至少一个SQL包括:每一个所述会话请求在web应用实际运行中产生的至少一个SQL;
所述SQL对应的记录信息包括:SQL在数据库中的实际运行语句和执行时间;
所述记录各SQL对应的记录信息,包括:利用所述全局SQL拦截器对各SQL进行解析并进行参数赋值,以将其转换为对应的实际运行语句,并记录该实际运行语句在数据库中的执行时间。
进一步地,所述会话请求对应的记录信息包括:会话请求对应的每一个SQL所对应的记录信息;
所述将该会话请求对应的记录信息按照线程变量进行存储,包括:对于每一个记录信息,均执行:判断所述服务器端的内存中缓存的记录信息的数量是否小于预先设置的存储阈值,若是,将该记录信息缓存至内存中,否则,将内存中当前缓存的记录信息转存至持久层,并将该记录信息缓存至内存中。
进一步地,所述ORM框架包括:MyBatis、Hibernate、Srping JdbcTemplate中的任意一种。
第二方面,本发明提供了一种对SQL进行监控的方法,应用于客户端,利用长轮询技术在所述客户端配置SQL监控页面,还包括:
将用户通过当前的客户端页面提交的每一个会话请求发送给服务器端,其中,所述客户端页面和所述SQL监控页面的session id相一致;
轮询所述服务器端存储的针对目标会话请求对应的记录信息,并利用所述SQL监控页面展示所述记录信息。
第三方面,本发明提供了一种服务器端,包括:
配置单元,用于在所述服务器端配置web应用全局拦截器,并配置与当前的ORM框架相对应的全局SQL拦截器;
拦截单元,用于利用所述web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;
记录单元,用于利用所述全局SQL拦截器,针对每一个所述会话请求对应的至少一个SQL,记录各SQL对应的记录信息;
第一处理单元,用于根据每一个所述会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;
第二处理单元,用于基于所述客户端针对目标会话请求的轮询请求,将存储的所述目标会话请求对应的记录信息提供于所述客户端。
进一步地,每一个所述会话请求对应的至少一个SQL包括:每一个所述会话请求在web应用实际运行中产生的至少一个SQL;
所述SQL对应的记录信息包括:SQL在数据库中的实际运行语句和执行时间;
所述记录单元,具体用于利用所述全局SQL拦截器对各SQL进行解析并进行参数赋值,以将其转换为对应的实际运行语句,并记录该实际运行语句在数据库中的执行时间。
进一步地,所述会话请求对应的记录信息包括:会话请求对应的每一个SQL所对应的记录信息;
所述第一处理单元,具体用于对于每一个记录信息,均执行:判断所述服务器端的内存中缓存的记录信息的数量是否小于预先设置的存储阈值,若是,将该记录信息缓存至内存中,否则,将内存中当前缓存的记录信息转存至持久层,并将该记录信息缓存至内存中。
第四方面,本发明提供了一种客户端,包括:
配置单元,用于利用长轮询技术在所述客户端配置SQL监控页面;
通信单元,用于将用户通过当前的客户端页面提交的每一个会话请求发送给服务器端,其中,所述客户端页面和所述SQL监控页面的session id相一致;
处理单元,用于轮询所述服务器端存储的针对目标会话请求对应的记录信息,并利用所述SQL监控页面展示所述记录信息。
第五方面,本发明提供了一种对SQL进行监控的系统,包括:上述任一所述的服务器端,以及至少一个上述客户端。
本发明提供了一种对SQL进行监控的方法、装置及系统,利用服务器端配置的web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;利用服务器端配置的全局SQL拦截器,针对每一个会话请求对应的至少一个SQL,记录每一个SQL对应的记录信息;根据每一个会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;基于客户端针对目标会话请求的轮询请求,将存储的目标会话请求对应的记录信息提供于客户端。由于可以实时拦截每一个会话请求,并对其相应记录信息进行分别存储,故本发明能够实现SQL相关信息的实时监控。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种对SQL进行监控的方法的流程图;
图2是本发明一实施例提供的另一种对SQL进行监控的方法的流程图;
图3是本发明一实施例提供的又一种对SQL进行监控的方法的流程图;
图4是本发明一实施例提供的一种服务器端的示意图;
图5是本发明一实施例提供的一种客户端的示意图;
图6是本发明一实施例提供的一种对SQL进行监控的系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种对SQL进行监控的方法,应用于服务器端,可以包括以下步骤:
步骤101:在所述服务器端配置web应用全局拦截器,并配置与当前的ORM框架相对应的全局SQL拦截器。
步骤102:利用所述web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id。
步骤103:利用所述全局SQL拦截器,针对每一个所述会话请求对应的至少一个SQL,记录各SQL对应的记录信息。
步骤104:根据每一个所述会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储。
步骤105:基于所述客户端针对目标会话请求的轮询请求,将存储的所述目标会话请求对应的记录信息提供于所述客户端。
本发明实施例提供了一种对SQL进行监控的方法,利用服务器端配置的web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;利用服务器端配置的全局SQL拦截器,针对每一个会话请求对应的至少一个SQL,记录每一个SQL对应的记录信息;根据每一个会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;基于客户端针对目标会话请求的轮询请求,将存储的目标会话请求对应的记录信息提供于客户端。由于可以实时拦截每一个会话请求,并对其相应记录信息进行分别存储,故本发明实施例能够实现SQL相关信息的实时监控。
在本发明的一个实施例中,每一个所述会话请求对应的至少一个SQL包括:每一个所述会话请求在web应用实际运行中产生的至少一个SQL;
所述SQL对应的记录信息包括:SQL在数据库中的实际运行语句和执行时间;
所述记录各SQL对应的记录信息,包括:利用所述全局SQL拦截器对各SQL进行解析并进行参数赋值,以将其转换为对应的实际运行语句,并记录该实际运行语句在数据库中的执行时间。
详细地,每一个会话请求在web应用实际运行中均可以产生多个SQL,且全局SQL拦截器可以将所有执行的SQL进行解析并进行参数赋值,以转换为可以执行的SQL,即实际运行语句。其中,转换后得到的实际运行语句可以被工作人员所识别。
在本发明的一个实施例中,所述会话请求对应的记录信息包括:会话请求对应的每一个SQL所对应的记录信息;
所述将该会话请求对应的记录信息按照线程变量进行存储,包括:对于每一个记录信息,均执行:判断所述服务器端的内存中缓存的记录信息的数量是否小于预先设置的存储阈值,若是,将该记录信息缓存至内存中,否则,将内存中当前缓存的记录信息转存至持久层,并将该记录信息缓存至内存中。
详细地,通过将获得的各记录信息实时存储至服务器内存中,以便于在检测到客户端的针对当前会话请求的轮询请求时,可以快速将对应的记录信息提供于客户端。
此外,为了保证服务器内存的高性能和高可用性,可以通过设置阈值的实现方式,以将最新获得的各记录信息存入内存,而将内存中之前存储的记录信息转存至持久层。
在本发明一个实施例中,根据每一个会话请求唯一的session id,各会话请求对应的记录信息均可以单独存储,以便于工作人员定位查询。此外,各会话请求对应的记录信息均可以实时缓存于内存中,一定时间后可以均存储有持久层,存储于持久层中的记录信息可以用于性能分析、大数据分析等多种数据分析方式。
在本发明一个实施例中,所述ORM框架包括:MyBatis、Hibernate、SrpingJdbcTemplate中的任意一种。
如图2所示,本发明实施例提供了一种对SQL进行监控的方法,应用于客户端,可以包括以下步骤:
步骤201:利用长轮询技术在所述客户端配置SQL监控页面。
步骤202:将用户通过当前的客户端页面提交的每一个会话请求发送给服务器端,其中,所述客户端页面和所述SQL监控页面的session id相一致。
步骤203:轮询所述服务器端存储的针对目标会话请求对应的记录信息,并利用所述SQL监控页面展示所述记录信息。
详细地,用户可以通过任一客户端的客户端页面提交会话请求,且不同会话操作产生的SQL互不影响。在向服务器端提交会话请求后,可以通过长轮询的方式从服务器端获取SQL执行记录,并将其显示于配置的SQL监控页面。这一实现方式能够在使用业务应用的同时,打开监控页面以实时对SQL运行状况进行监控。
如图3所示,本发明一个实施例提供了一种对SQL进行监控的方法,该方法以一种WEB应用下不同用户会话中对产生的SQL进行实时监控为例,具体包括以下步骤:
步骤301:在服务器端配置web应用全局拦截器,并配置与服务器端当前的ORM框架相对应的全局SQL拦截器,以及利用长轮询技术在客户端配置SQL监控页面。
详细地,一个服务器端可以对应于至少一个客户端。
详细地,ORM框架可以包括MyBatis、Hibernate、Srping JdbcTemplate中的任意一种。
详细地,与SQL监控页面的效果类似,同样可以在客户端配置SQL监控插件。
步骤302:客户端将用户通过当前的客户端页面提交的每一个会话请求发送给服务器端,其中,客户端页面和SQL监控页面的session id相一致。
详细地,用户可以通过任一客户端的客户端页面而发出会话请求。此外,为了能够利用配置的SQL监控页面以实时监控该会话请求,要求用户打开的客户端页面和SQL监控页面保持统一会话,即两者的session id相一致。由于数据处理及信息交互均需一定时间,故监控过程存在一定程度的延迟,但该延迟时间段通常可以忽略不计。
基于这一实现方式,对于任一会话请求,均可以实时监控到该会话请求的SQL执行记录,以便于异常情况出现时能够及时进行相应处理。
步骤303:服务器端利用web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id。
详细地,web应用全局拦截器即全局filter(过滤器),可以对会话请求进行拦截并记录下session id。其中,session id可以为web应用容器会话ID,且不同会话请求存在唯一的一个session id。
步骤304:服务器端针对每一个会话请求在web应用实际运行中产生的每一个SQL,利用全局SQL拦截器对各SQL进行解析并进行参数赋值,以将其转换为对应的实际运行语句,并记录该实际运行语句在数据库中的执行时间。
详细地,SQL可以被系统所识别,经参数赋值后可以转换为对应的实际运行语句,且转换后得到的实际运行语句可以被工作人员所识别。
详细地,执行时间可以包括开始时间、结束时间、持续时间中的至少一种。
步骤305:服务器端确定每一个会话请求的记录信息,其中,该记录信息包括会话请求对应的实际运行语句和执行时间。
详细地,每一个会话请求的记录信息可以包括该会话请求对应的实际运行语句和执行时间。其中,可以根据会话请求对应的SQL和SQL对应的实际运行语句和执行时间,以确定每一个会话请求的记录信息。
由于一个会话请求通常对应于多个SQL,且每一个SQL均对应于一个实际运行语句和一个执行时间,故一个会话请求通常对应存在多个记录信息。
步骤306:服务器端针对当前会话请求的每一个记录信息,均执行:判断内存中缓存的记录信息的数量是否小于预先设置的存储阈值,若是,执行步骤307,否则,将内存中当前缓存的记录信息转存至持久层,并执行步骤307。
详细地,持久层可以为数据库。
详细地,通过将记录信息实时存储至内存中,以便于在检测到客户端的针对当前会话请求的轮询请求时,可以快速将对应的记录信息提供于客户端。此外,通过设置的存储阈值,可以将最新获得的各记录信息存入内存,而将内存中之前存储的记录信息转存至持久层,这一实现方式有益于保证内存的高性能和高可用性。
在本发明一个实施例中,可以预先设置时间阈值,系统定期检测内存中记录信息的缓存时间,当缓存时间超过设置的时间阈值时,同样可以将内存中当前缓存的记录信息转存至持久层。因此,每一个记录信息最终均可以存储于持久层,存储于持久层中的记录信息可以持久化存储,以及用于大数据分析等用途。
步骤307:根据当前会话请求的session id,将该会话请求的记录信息按照线程变量缓存至内存中。
常用地,线程变量即threadlocal变量。
详细地,根据每一个会话请求唯一的session id,可以将各会话请求对应的记录信息进行单独存储,这一实现方式有益于工作人员进行有针对性的分析查看,提高工作效率。
步骤308:客户端轮询服务器端存储的针对目标会话请求对应的记录信息,并利用SQL监控页面展示服务器端提供的记录信息。
详细地,客户端在向服务器端提交会话请求后,可以通过长轮询的方式从服务器端获取SQL执行记录,并将其显示于配置的SQL监控页面。这一实现方式能够在使用业务应用的同时,打开监控页面以实时对SQL运行状况进行监控。
如图4所示,本发明一个实施例提供了一种服务器端40,包括:
配置单元401,用于在所述服务器端配置web应用全局拦截器,并配置与当前的ORM框架相对应的全局SQL拦截器;
拦截单元402,用于利用所述web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;
记录单元403,用于利用所述全局SQL拦截器,针对每一个所述会话请求对应的至少一个SQL,记录各SQL对应的记录信息;
第一处理单元404,用于根据每一个所述会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;
第二处理单元405,用于基于所述客户端针对目标会话请求的轮询请求,将存储的所述目标会话请求对应的记录信息提供于所述客户端。
在本发明一个实施例中,每一个所述会话请求对应的至少一个SQL包括:每一个所述会话请求在web应用实际运行中产生的至少一个SQL;
所述SQL对应的记录信息包括:SQL在数据库中的实际运行语句和执行时间;
所述记录单元403,具体用于利用所述全局SQL拦截器对各SQL进行解析并进行参数赋值,以将其转换为对应的实际运行语句,并记录该实际运行语句在数据库中的执行时间。
在本发明一个实施例中,所述会话请求对应的记录信息包括:会话请求对应的每一个SQL所对应的记录信息;
所述第一处理单元404,具体用于对于每一个记录信息,均执行:判断所述服务器端的内存中缓存的记录信息的数量是否小于预先设置的存储阈值,若是,将该记录信息缓存至内存中,否则,将内存中当前缓存的记录信息转存至持久层,并将该记录信息缓存至内存中。
如图5所示,本发明一个实施例提供了一种客户端50,包括:
配置单元501,用于利用长轮询技术在所述客户端配置SQL监控页面;
通信单元502,用于将用户通过当前的客户端页面提交的每一个会话请求发送给服务器端,其中,所述客户端页面和所述SQL监控页面的session id相一致;
处理单元503,用于轮询所述服务器端存储的针对目标会话请求对应的记录信息,并利用所述SQL监控页面展示所述记录信息。
如图6所示,本发明一个实施例提供了一种对SQL进行监控的系统,包括:上述任一所述的服务器端40,以及至少一个上述客户端50。
详细地,用户可以通过任一客户端向服务器端发出会话请求,且基于服务器端和任一客户端间的信息交互,可以实现对SQL的实时监控。其中,基于WEB应用的不同会话可以达到单独SQL监控的目的,且不同会话操作产生的SQL互不影响。此外,监控内容还可用于存储记录,以及用作其他数据分析用途。
在本发明一个实施例中,可以将该对SQL进行监控的系统部署应用在全国统一烟草订货平台中,可以方便现场实施和后台开发,以及便于测试人员对业务理解和系统问题分析,能够极大提高工作效率。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
综上所述,本发明的各个实施例至少具有如下有益效果:
1、本发明实施例中,利用服务器端配置的web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;利用服务器端配置的全局SQL拦截器,针对每一个会话请求对应的至少一个SQL,记录每一个SQL对应的记录信息;根据每一个会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;基于客户端针对目标会话请求的轮询请求,将存储的目标会话请求对应的记录信息提供于客户端。由于可以实时拦截每一个会话请求,并对其相应记录信息进行分别存储,故本发明实施例能够实现SQL相关信息的实时监控。
2、本发明实施例中,客户端在向服务器端提交会话请求后,可以通过长轮询的方式从服务器端获取SQL执行记录,并将其显示于配置的SQL监控页面。这一实现方式能够在使用业务应用的同时,打开监控页面以实时对SQL运行状况进行监控。
3、本发明实施例中,通过将记录信息实时存储至内存中,以便于在检测到客户端的针对当前会话请求的轮询请求时,可以快速将对应的记录信息提供于客户端。此外,通过设置的存储阈值,可以将最新获得的各记录信息存入内存,而将内存中之前存储的记录信息转存至持久层,这一实现方式有益于保证内存的高性能和高可用性。
4、本发明实施例中,根据每一个会话请求唯一的session id,可以将各会话请求对应的记录信息进行单独存储,这一实现方式有益于工作人员进行有针对性的分析查看,提高工作效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种对结构化查询语言SQL进行监控的方法,其特征在于,应用于服务器端,在所述服务器端配置web应用全局拦截器,并配置与当前的对象关系映射ORM框架相对应的全局SQL拦截器,还包括:
利用所述web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;
利用所述全局SQL拦截器,针对每一个所述会话请求对应的至少一个SQL,记录各SQL对应的记录信息;
根据每一个所述会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;
基于所述客户端针对目标会话请求的轮询请求,将存储的所述目标会话请求对应的记录信息提供于所述客户端;
所述会话请求对应的记录信息包括:会话请求对应的每一个SQL所对应的记录信息;
所述将该会话请求对应的记录信息按照线程变量进行存储,包括:对于每一个记录信息,均执行:判断所述服务器端的内存中缓存的记录信息的数量是否小于预先设置的存储阈值,若是,将该记录信息缓存至内存中,否则,将内存中当前缓存的记录信息转存至持久层,并将该记录信息缓存至内存中。
2.根据权利要求1所述的方法,其特征在于,
每一个所述会话请求对应的至少一个SQL包括:每一个所述会话请求在web应用实际运行中产生的至少一个SQL;
所述SQL对应的记录信息包括:SQL在数据库中的实际运行语句和执行时间;
所述记录各SQL对应的记录信息,包括:利用所述全局SQL拦截器对各SQL进行解析并进行参数赋值,以将其转换为对应的实际运行语句,并记录该实际运行语句在数据库中的执行时间。
3.根据权利要求1至2中任一所述的方法,其特征在于,
所述ORM框架包括:MyBatis、Hibernate、Srping JdbcTemplate中的任意一种。
4.一种对结构化查询语言SQL进行监控的方法,其特征在于,应用于客户端,利用长轮询技术在所述客户端配置SQL监控页面,还包括:
将用户通过当前的客户端页面提交的每一个会话请求发送给服务器端,其中,所述客户端页面和所述SQL监控页面的session id相一致;
轮询所述服务器端存储的针对目标会话请求对应的记录信息,并利用所述SQL监控页面展示所述记录信息。
5.一种服务器端,其特征在于,包括:
配置单元,用于在所述服务器端配置web应用全局拦截器,并配置与当前的对象关系映射ORM框架相对应的全局结构化查询语言SQL拦截器;
拦截单元,用于利用所述web应用全局拦截器,拦截客户端的每一个会话请求,并记录各会话请求唯一的session id;
记录单元,用于利用所述全局SQL拦截器,针对每一个所述会话请求对应的至少一个SQL,记录各SQL对应的记录信息;
第一处理单元,用于根据每一个所述会话请求的session id,将该会话请求对应的记录信息按照线程变量进行存储;
第二处理单元,用于基于所述客户端针对目标会话请求的轮询请求,将存储的所述目标会话请求对应的记录信息提供于所述客户端。
6.根据权利要求5所述的服务器端,其特征在于,
每一个所述会话请求对应的至少一个SQL包括:每一个所述会话请求在web应用实际运行中产生的至少一个SQL;
所述SQL对应的记录信息包括:SQL在数据库中的实际运行语句和执行时间;
所述记录单元,具体用于利用所述全局SQL拦截器对各SQL进行解析并进行参数赋值,以将其转换为对应的实际运行语句,并记录该实际运行语句在数据库中的执行时间。
7.根据权利要求5或6所述的服务器端,其特征在于,
所述会话请求对应的记录信息包括:会话请求对应的每一个SQL所对应的记录信息;
所述第一处理单元,具体用于对于每一个记录信息,均执行:判断所述服务器端的内存中缓存的记录信息的数量是否小于预先设置的存储阈值,若是,将该记录信息缓存至内存中,否则,将内存中当前缓存的记录信息转存至持久层,并将该记录信息缓存至内存中。
8.一种客户端,其特征在于,包括:
配置单元,用于利用长轮询技术在所述客户端配置结构化查询语言SQL监控页面;
通信单元,用于将用户通过当前的客户端页面提交的每一个会话请求发送给服务器端,其中,所述客户端页面和所述SQL监控页面的session id相一致;
处理单元,用于轮询所述服务器端存储的针对目标会话请求对应的记录信息,并利用所述SQL监控页面展示所述记录信息。
9.一种对结构化查询语言SQL进行监控的系统,其特征在于,包括:
如权利要求5至7中任一所述的服务器端,以及至少一个如权利要求8所述的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610682615.6A CN106294075B (zh) | 2016-08-17 | 2016-08-17 | 一种对sql进行监控的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610682615.6A CN106294075B (zh) | 2016-08-17 | 2016-08-17 | 一种对sql进行监控的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106294075A CN106294075A (zh) | 2017-01-04 |
CN106294075B true CN106294075B (zh) | 2018-09-21 |
Family
ID=57679917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610682615.6A Active CN106294075B (zh) | 2016-08-17 | 2016-08-17 | 一种对sql进行监控的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294075B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628909B (zh) * | 2017-03-24 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 信息推送方法和装置 |
CN109213789A (zh) * | 2017-07-07 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 一种关于业务sql的分析方法及装置 |
CN107436819A (zh) * | 2017-08-03 | 2017-12-05 | 郑州云海信息技术有限公司 | 一种Oracle过载的应对方法及系统 |
CN108121542B (zh) * | 2017-11-17 | 2021-07-06 | 广东睿江云计算股份有限公司 | 一种基于MyBatis的SQL语句的配置方法、系统 |
CN108182203A (zh) * | 2017-12-12 | 2018-06-19 | 浪潮软件集团有限公司 | 一种数据核对方法及装置 |
CN109101403A (zh) * | 2018-08-24 | 2018-12-28 | 浪潮软件股份有限公司 | 一种对移动端产生sql进行实时监控的方法及系统 |
CN110941621A (zh) * | 2018-09-25 | 2020-03-31 | 北京国双科技有限公司 | 一种内外网间同步数据库的方法及装置 |
CN109492015A (zh) * | 2018-10-31 | 2019-03-19 | 武汉达梦数据库有限公司 | 实时采集并展示活动会话完整信息的方法及设备 |
CN110347747A (zh) * | 2019-06-14 | 2019-10-18 | 平安科技(深圳)有限公司 | 数据库间数据同步方法、系统、计算机设备及存储介质 |
CN112115158A (zh) * | 2020-09-04 | 2020-12-22 | 浪潮电子信息产业股份有限公司 | Sql语句执行时间记录方法、装置、设备及可读存储介质 |
CN112882893A (zh) * | 2021-02-07 | 2021-06-01 | 浪潮软件股份有限公司 | 一种对移动端产生应用业务日志进行实时监控的方法 |
CN113127505B (zh) * | 2021-05-17 | 2024-04-23 | 北京奇艺世纪科技有限公司 | 结构化查询语言sql系统的监控方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226497A (zh) * | 2007-12-10 | 2008-07-23 | 金蝶软件(中国)有限公司 | 应用程序监控系统和监控方法 |
CN103678630A (zh) * | 2013-12-19 | 2014-03-26 | 北京用友政务软件有限公司 | 一种数据库监控方法及系统 |
EP2990951A1 (en) * | 2014-08-28 | 2016-03-02 | Sap Se | Structured query language debugger |
-
2016
- 2016-08-17 CN CN201610682615.6A patent/CN106294075B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226497A (zh) * | 2007-12-10 | 2008-07-23 | 金蝶软件(中国)有限公司 | 应用程序监控系统和监控方法 |
CN103678630A (zh) * | 2013-12-19 | 2014-03-26 | 北京用友政务软件有限公司 | 一种数据库监控方法及系统 |
EP2990951A1 (en) * | 2014-08-28 | 2016-03-02 | Sap Se | Structured query language debugger |
Also Published As
Publication number | Publication date |
---|---|
CN106294075A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294075B (zh) | 一种对sql进行监控的方法、装置及系统 | |
US10831526B2 (en) | System and method of application discovery | |
US11575579B2 (en) | Systems and methods for networked microservice modeling | |
US11700303B1 (en) | Distributed data analysis for streaming data sources | |
US8051163B2 (en) | Synthetic transactions based on system history and load | |
US9104572B1 (en) | Automated root cause analysis | |
CN106709003A (zh) | 基于Hadoop的海量日志数据处理方法 | |
US10339039B2 (en) | Virtual service interface | |
US20160004621A1 (en) | Proactive impact measurement of database changes on production systems | |
CN109716730A (zh) | 生产应用的自动化性能调试 | |
CN109194543A (zh) | 数据采集方法和装置 | |
EP3384391B1 (en) | Real-time change data from disparate sources | |
TW201411367A (zh) | 監測用戶請求在分散式系統中運行的方法及裝置 | |
CN105373899A (zh) | 一种服务器资产管理的方法及装置 | |
WO2017045537A1 (zh) | 一种分布式系统中请求的处理方法以及装置 | |
CN104935660B (zh) | 一种云程序开发运行系统、方法及装置 | |
CN106992886A (zh) | 一种基于分布式存储的日志分析方法及装置 | |
CN105099733A (zh) | 安全管控平台中设备安全管理的方法和系统 | |
Wang et al. | Scalable run-time correlation engine for monitoring in a cloud computing environment | |
CN105812432B (zh) | 云文档处理方法及装置 | |
CN105069029A (zh) | 一种实时etl系统及方法 | |
CN112363873A (zh) | 一种分布式一致性备份恢复系统及其备份方法 | |
CN105491167B (zh) | 一种实时感知浏览器终端用户操作体验的实现方法 | |
CN103916463A (zh) | 一种网络访问统计分析方法及系统 | |
CN106557530A (zh) | 业务系统、数据修复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |