CN112069202A - 基于追踪技术的sql性能分析方法、系统、设备及介质 - Google Patents

基于追踪技术的sql性能分析方法、系统、设备及介质 Download PDF

Info

Publication number
CN112069202A
CN112069202A CN202010939020.0A CN202010939020A CN112069202A CN 112069202 A CN112069202 A CN 112069202A CN 202010939020 A CN202010939020 A CN 202010939020A CN 112069202 A CN112069202 A CN 112069202A
Authority
CN
China
Prior art keywords
sql
performance analysis
tracking
sql statement
original
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
CN202010939020.0A
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.)
Shanghai Ctrip Business Co Ltd
Original Assignee
Shanghai Ctrip Business Co 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 Shanghai Ctrip Business Co Ltd filed Critical Shanghai Ctrip Business Co Ltd
Priority to CN202010939020.0A priority Critical patent/CN112069202A/zh
Publication of CN112069202A publication Critical patent/CN112069202A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

本发明公开了一种基于追踪技术的SQL性能分析方法、系统、设备及介质,SQL性能分析方法包括通过追踪插件获取应用程序运行的原始SQL语句和对应的参数;将原始SQL语句与参数进行匹配和组装以得到待分析SQL语句;根据执行计划对待分析SQL语句进行性能分析以得到SQL性能分析结果。本发明利用追踪插件获取应用程序运行的原始SQL语句及参数,经参数匹配与组装后通过执行计划对SQL语句进行性能分析,能够在上线前发现SQL的性能风险、及时解决风险、预防线上重大事件的发生,效率高,成本低,检测过程更容易,更全面。

Description

基于追踪技术的SQL性能分析方法、系统、设备及介质
技术领域
本发明涉及测试领域,尤其涉及一种基于追踪技术的SQL性能分析方法、系统、设备及介质。
背景技术
目前数据库的性能越来越成为整个应用系统的性能瓶颈,数据层的优劣会导致应用程序运行的时间变慢,同时会影响应用系统的响应时间,导致用户使用感受差。网上支付应用系统使用的数据库业务处理量是巨大的,一旦数据库出现性能风险,将可能直接影响支付应用系统的业务处理,产生订单损失。然而SQL(结构化查询语言)性能测试难度高,人工检测数据库性能的方式效率低下且成本较高。
发明内容
本发明要解决的技术问题是为了克服现有技术中人工检测数据库性能的方式效率低下、成本较高的缺陷,提供一种基于追踪技术的SQL性能分析方法、系统、设备及介质。
本发明是通过下述技术方案来解决上述技术问题:
一种基于追踪技术的SQL性能分析方法,包括:
通过追踪插件获取应用程序运行的原始SQL语句和对应的参数;
将所述原始SQL语句与所述参数进行匹配和组装以得到待分析SQL语句;
根据执行计划对所述待分析SQL语句进行性能分析以得到SQL性能分析结果。
较佳地,所述通过追踪插件获取应用程序运行的原始SQL语句和对应的参数的步骤具体包括:
通过动态追踪工具Btrace在所述应用程序中设置埋点以获取应用程序运行的所述原始SQL语句和对应的参数。
较佳地,所述将所述原始SQL语句与所述参数进行匹配和组装以得到待分析SQL语句的步骤具体包括:
将所述原始SQL语句与所述参数进行匹配并发送至消息队列;
接收所述消息队列中的匹配后的SQL语句并进行组装以形成所述待分析SQL语句。
较佳地,所述根据执行计划对所述待分析SQL语句进行性能分析以得到SQL性能分析结果的步骤具体包括:
根据所述执行计划中的扫描行的数量是否超过阈值对所述待分析SQL语句进行性能分析以得到SQL性能分析结果。
较佳地,在所述根据所述执行计划中的扫描行的数量是否超过阈值对所述待分析SQL语句进行性能分析以得到SQL性能分析结果的步骤之后,所述SQL性能分析方法还包括以下步骤:
在所述扫描行的数量超过所述阈值时发送风险警告邮件。
较佳地,在所述通过追踪插件获取应用程序运行的原始SQL语句和对应的参数的步骤之前,所述SQL性能分析方法还包括:
通过所述追踪插件获取所述应用程序的运行状态;
判断所述运行状态是否异常;
若是,停止获取所述原始SQL语句和对应的参数并发送运行异常信息;和/或,
在所述通过追踪插件获取应用程序运行的原始SQL语句和对应的参数的步骤之前,所述SQL性能分析方法还包括:
通过所述追踪插件接收过滤信息并基于所述过滤信息停止获取对应的所述原始SQL语句和参数。
一种基于追踪技术的SQL性能分析系统,包括:数据追踪模块和数据分析模块;
所述数据追踪模块用于通过追踪插件获取应用程序运行的原始SQL语句和对应的参数,并将所述原始SQL语句与所述参数进行匹配以得到匹配SQL语句,并发送至所述数据分析模块;
所述数据分析模块用于获取所述匹配SQL语句并进行组装以得到待分析SQL语句,并根据执行计划对所述待分析SQL语句进行性能分析以得到SQL性能分析结果。
较佳地,所述数据追踪模块还包括数据存储模块;
所述追踪插件还用于将所述原始SQL语句与所述参数进行匹配并发送至消息队列,所述消息队列设置于所述数据存储模块中;
所述数据分析模块还用于接收所述数据存储模块中的所述消息队列中的匹配后的SQL语句并进行组装以形成所述待分析SQL语句;
和/或,
所述数据分析模块还用于判断所述执行计划中的扫描行的数量是否超过阈值,并在所述扫描行的数量超过所述阈值时发送风险警告邮件。
较佳地,所述追踪插件还用于获取所述应用程序的运行状态并发送至所述数据分析模块;
所述数据分析模块还用于判断所述运行状态是否异常,若是发出运行异常信息至所述追踪插件;
所述追踪插件还用于基于所述运行异常信息停止获取所述原始SQL语句和对应的参数。
较佳地,所述数据分析模块还用于设置过滤信息并将所述过滤信息发送至所述数据追踪模块,所述过滤信息用于过滤预设的SQL语句及对应的参数信息;
所述数据追踪模块还用于通过所述追踪插件接收所述过滤信号并基于所述过滤信息停止获取对应的所述原始SQL语句和参数。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述中任一种基于追踪技术的SQL性能分析方法。
一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述中任一种基于追踪技术的SQL性能分析方法的步骤。
本发明的积极进步效果在于:本发明利用追踪插件获取应用程序运行的原始SQL语句及参数,经参数匹配与组装后通过执行计划对SQL语句进行性能分析,能够在上线前发现SQL的性能风险、及时解决风险、预防线上重大事件的发生,相比人工去测试系统中SQL性能效率高,成本低,检测过程更容易,更全面。
附图说明
图1为本发明实施例1的基于追踪技术的SQL性能分析方法的流程图。
图2为本发明实施例2的基于追踪技术的SQL性能分析方法的流程图。
图3为本发明实施例2的基于追踪技术的SQL性能分析方法应用流程图。
图4为本发明实施例2的基于追踪技术的SQL性能分析方法的多应用追踪图。
图5为本发明实施例3的基于追踪技术的SQL性能分析系统的结构示意图。
图6为本发明实施例4的基于追踪技术的SQL性能分析系统的结构示意图。
图7为本发明实施例5的基于追踪技术的SQL性能分析方法的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例的基于追踪技术的SQL性能分析方法,如图1所示,包括以下步骤:
S101、通过追踪插件获取应用程序运行的原始SQL语句和对应的参数;
S102、将原始SQL语句与参数进行匹配和组装以得到待分析SQL语句;
S103、根据执行计划对待分析SQL语句进行性能分析以得到SQL性能分析结果。
本实施例的基于追踪技术的SQL性能分析方法利用追踪插件获取应用程序运行的原始SQL语句及参数,经参数匹配与组装后通过执行计划对SQL语句进行性能分析,能够在上线前发现SQL的性能风险、及时解决风险、预防线上重大事件的发生,效率高,成本低,检测过程更容易,更全面。
实施例2
在实施例1的基础上,本实施例提供一种基于追踪技术的SQL性能分析方法,如图2所示,
具体地,步骤S101具体包括:
S1011、通过动态追踪工具Btrace(一种追踪工具)在应用程序中设置埋点以获取应用程序运行的原始SQL语句和对应的参数。
本实施例的基于追踪技术的SQL性能分析方法使用安全的JVM(Java虚拟机)动态追踪工具Btrace获取应用程序运行的原始SQL语句和对应的参数。通过执行编写的SQLJava(一种面向对象编程语言)脚本,并将其编译成字节码文件,使用Attach API(一种Java应用程序接口)把代理包动态附加到待监控的JVM上,通过代理包解析SQL Java脚本,使用ASM(Java字节码操作和分析框架)修改类java.sql.Connection(一种Java类)和java.sql.PreparedStatement(一种Java类),再利用JDK Instrumentation(一种指令)动态替换类,实现在应用程序中设置埋点,以获取应用程序运行的原始SQL语句和对应的参数并记录到文件中。
步骤S102具体包括:
S1021、将原始SQL语句与参数进行匹配并发送至消息队列;
S1022、接收消息队列中的匹配后的SQL语句并进行组装以形成待分析SQL语句。
步骤S103具体包括:
S1031、根据执行计划中的扫描行的数量是否超过阈值对待分析SQL语句进行性能分析以得到SQL性能分析结果;
本实施例的基于追踪技术的SQL性能分析方法中通过DBA(数据库管理员)数据库管理员提供的explain接口在生产环境下的执行SQL的执行计划对待分析SQL语句进行性能分析。本实施例的阈值设置为5000,该阈值可根据实际情况进行灵活修改,不限于本实施例的设置数值。本实施例的基于追踪技术的SQL性能分析方法还可以根据执行计划中的类型是否满足预设条件进行SQL性能分析,具体SQL性能分析方法不限于以上内容。
本实施例的基于追踪技术的SQL性能分析方法在步骤S1031之后,还包括以下步骤:
S104、在扫描行的数量超过阈值时发送风险警告邮件;
本实施例的基于追踪技术的SQL性能分析方法中,在判断执行计划中的扫描行的数量超过阈值时,判定SQL存在性能风险,采用soa(面向服务的架构)email(邮件)方式发送风险告警邮件到相关测试人员以及开发人员。本实施例的基于追踪技术的SQL性能分析方法还可以通过输出风险提醒信息或风险提醒警示灯等方式进行预警。
在步骤S101之前,本实施例的基于追踪技术的SQL性能分析方法还包括以下步骤:
S105、通过追踪插件获取应用程序的运行状态;
S106、判断运行状态是否异常;
若是,执行步骤S107;若否,执行步骤S101;
S107、停止获取原始SQL语句和对应的参数并发送运行异常信息。
本实施例的基于追踪技术的SQL性能分析方法中应用程序的运行状态是指应用程序所在业务线应用是否正常运行,如果该业务线应用停止了,则表示运行状态异常,追踪插件停止获取该应用程序中的原始SQL语句和对应的参数,并发送运行异常信息,以实现对业务线应用的运行状态监测,避免获取无效的SQL语句与参数,提高了SQL性能分析的准确性。
在步骤S101之前,本实施例的基于追踪技术的SQL性能分析方法还包括:
通过追踪插件接收过滤信息并基于过滤信息停止获取对应的原始SQL语句和参数。
本实施例的基于追踪技术的SQL性能分析方法通过设置过滤信息,可以过滤掉预设的SQL语句和参数,提高了配置的灵活性。
如图3和图4所示,本实施例的基于追踪技术的SQL性能分析方法具体应用场景如下:追踪区使用多个追踪插件apptrace-agent,每个追踪插件apptrace-agent与一个业务线应用通信连接,用于获取业务线应用中运行的原始SQL语句和对应的参数,并将原始SQL语句与参数进行匹配以确定参数的索引值并发送至消息队列进行数据存储。SQL分析区使用SQL风险分析系统(apptrace-server)进行SQL性能分析,apptrace-server从数据存储中获取SQL语句并进行SQL组装后通过DBA提供的explain接口在生产备库执行执行SQL的explain(执行计划),根据阈值分析执行计划结果确定SQL性能风险,对于存在风险的SQL,采用soa email方式推送告警到测试人员以及开发负责人,直到SQL优化无风险后终止告警。
具体的,追踪插件apptrace-agent内部设置有Btrace客户端btrace-client和Btrace服务端btrace-agent,应用部署成功后SQL追踪插件apptrace-agent自动运行,Btrace客户端btrace-client编译Btrace监控脚本,该监控脚本是测试人员编写的SQLJava脚本,通过JVM attach(一种Java指令)启动Btrace服务端btrace-agent并加载Btrace服务端btrace-agent的iar(一种Java指令)包,并提交code(代码)到Btrace服务端btrace-agent,Btrace服务端btrace-agent监听指定的pid(进程),并进行字节码操作实现在应用程序中设置埋点;字节码操作后进行update(更新)重新加载对应的类,以实现对应用程序中原始SQL语句和对应参数的获取。追踪插件apptrace-agent生成追踪到的SQL文件,并进行解析以实现原始SQL语句与参数的匹配,确定参数的索引值并发送至消息队列,如rabbitmq(高级消息队列协议)用于数据存储,SQL风险分析系统(apptrace-server)接收消息队列中的SQL语句,并进行SQL组装后根据执行计划分析SQL性能,并生成报告,在SQL存在风险时,通过邮件进行报警。
追踪插件apptrace-agent与业务线应用于放置在同一服务器,而与SQL风险分析系统(apptrace-server)放置在不同的服务器,以免除相互影响。
追踪插件apptrace-agent还用于获取业务线应用的运行状态信号,并发送至apptrace-server,以监测业务线应用是否运行正常,在出现异常时停止获取SQL语句,
apptrace-server还用于设置过滤信息,如白名单信息,某一SQL语句不想继续追踪了可以通过发送过滤信息至追踪插件apptrace-agent以停止追踪对应的SQL语句与参数,以实现自动化配置。
本实施例的基于追踪技术的SQL性能分析方法在SQL出现性能风险时可进行邮件报警,并能监控业务线应用的运行状态信息,同时可设置过滤信息,停止追踪特定的SQL语句,以达到提前预警SQL上线后性能风险的目的,并实现灵活配置。
实施例3
本实施例的基于追踪技术的SQL性能分析系统,如图5所示,包括:数据追踪模块1和数据分析模块2;
数据追踪模块1与数据分析模块2通信连接;
数据追踪模块1用于通过追踪插件获取应用程序运行的原始SQL语句和对应的参数,并将原始SQL语句与参数进行匹配以得到匹配SQL语句,并发送至数据分析模块2;
数据分析模块2用于获取匹配SQL语句并进行组装以得到待分析SQL语句并根据执行计划对待分析SQL语句进行性能分析以得到SQL性能分析结果。
本实施例的基于追踪技术的SQL性能分析系统利用追踪插件获取应用程序运行的原始SQL语句及参数,经参数匹配与组装后通过执行计划对SQL语句进行性能分析,能够在上线前发现SQL的性能风险、及时解决风险、预防线上重大事件的发生,效率高,成本低,检测过程更容易,更全面。
实施例4
在实施例3的基础上,本实施例提供一种基于追踪技术的SQL性能分析系统,如图6所示。
数据追踪模块1包括若干追踪插件11,追踪插件11与外部的业务线应用通信连接,用于获取业务线应用中运行的原始SQL语句和对应的参数。
数据追踪模块1还包括数据存储模块12;
追踪插件11还用于将原始SQL语句与参数进行匹配以确定参数的索引值并发送至消息队列,消息队列设置于数据存储模块12中;
数据分析模块2还用于接收数据存储模块12中的消息队列中的原始SQL语句并进行组装以形成待分析SQL语句。
本实施例的基于追踪技术的SQL性能分析系统使用安全的JVM(Java虚拟机)动态追踪工具Btrace获取应用程序运行的原始SQL语句和对应的参数。通过执行编写的SQLJava脚本,并将其编译成字节码文件,使用Attach API把代理包动态附加到待监控的JVM上,通过代理包解析SQL Java脚本,使用ASM(Java字节码操作和分析框架)修改类java.sql.Connection和java.sql.PreparedStatement,再利用JDK Instrumentation动态替换类,实现在应用程序中设置埋点,以获取应用程序运行的原始SQL语句和对应的参数并记录到文件中。
本实施例的基于追踪技术的SQL性能分析系统通过DBA(数据库管理员)数据库管理员提供的explain接口在生产环境下的执行SQL的执行计划对待分析SQL语句进行性能分析。
数据分析模块2还还用于判断执行计划中的扫描行的数量是否超过阈值,并在扫描行的数量超过阈值时发送风险警告邮件。
本实施例的基于追踪技术的SQL性能分析系统中,阈值设置为5000,该阈值可根据实际情况进行灵活修改,不限于本实施例的设置数值。本实施例的基于追踪技术的SQL性能分析系统还可以根据执行计划中的类型是否满足预设条件进行风险判断,具体风险判断设置不限于本实施例的设置方式。在判断执行计划中的扫描行的数量超过阈值时,判定SQL存在性能风险,采用soa email方式发送风险告警邮件到相关测试人员以及开发人员。本实施例的基于追踪技术的SQL性能分析系统还可以通过输出风险提醒信息或风险提醒警示灯等方式进行预警。
追踪插件11还用于获取应用程序的运行状态并发送至数据分析模块2;
本实施例的基于追踪技术的SQL性能分析系统中,数据分析模块2还用于判断运行状态是否异常,若是发出运行异常信息至追踪插件11;
追踪插件11还用于基于运行异常信息停止获取原始SQL语句和对应的参数。
本实施例的基于追踪技术的SQL性能分析系统中应用程序的运行状态是指应用程序所在业务线应用是否正常运行,如果该业务线应用停止了,则表示运行状态异常,追踪插件停止获取该应用程序中的原始SQL语句和对应的参数,并发送运行异常信息,以实现对业务线应用的运行状态监测,避免获取无效的SQL语句与参数,提高了SQL性能分析的准确性。
本实施例的基于追踪技术的SQL性能分析系统中,数据分析模块2还用于设置过滤信息并将过滤信息发送至数据追踪模块1,过滤信息用于过滤预设的SQL语句及对应的参数信息;
数据追踪模块1还用于通过追踪插件11接收过滤信号并基于过滤信息停止获取对应的原始SQL语句和参数。
本实施例的基于追踪技术的SQL性能分析系统通过设置过滤信息,可以过滤掉预设的SQL语句和参数,提高了配置的灵活性。
本实施例的基于追踪技术的SQL性能分析系统具体应用场景与实施例2中的应用场景类似,此处不再赘述。
本实施例的基于追踪技术的SQL性能分析系统在SQL出现性能风险时可进行邮件报警,并能监控业务线应用的运行状态信息,同时可设置过滤信息,停止追踪特定的SQL语句,以达到提前预警SQL上线后性能风险的目的,并实现灵活配置。
实施例5
图7为本发明实施例5提供的一种实现基于追踪技术的SQL性能分析方法的电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1或2的基于追踪技术的SQL性能分析方法。图7显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1或2所提供的基于追踪技术的SQL性能分析方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例6
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1或2所提供的基于追踪技术的SQL性能分析方法步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1或2的基于追踪技术的SQL性能分析方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (12)

1.一种基于追踪技术的SQL性能分析方法,其特征在于,包括:
通过追踪插件获取应用程序运行的原始SQL语句和对应的参数;
将所述原始SQL语句与所述参数进行匹配和组装以得到待分析SQL语句;
根据执行计划对所述待分析SQL语句进行性能分析以得到SQL性能分析结果。
2.如权利要求1所述的基于追踪技术的SQL性能分析方法,其特征在于,所述通过追踪插件获取应用程序运行的原始SQL语句和对应的参数的步骤具体包括:
通过动态追踪工具Btrace在所述应用程序中设置埋点以获取应用程序运行的所述原始SQL语句和对应的参数。
3.如权利要求1所述的基于追踪技术的SQL性能分析方法,其特征在于,所述将所述原始SQL语句与所述参数进行匹配和组装以得到待分析SQL语句的步骤具体包括:
将所述原始SQL语句与所述参数进行匹配并发送至消息队列;
接收所述消息队列中的匹配后的SQL语句并进行组装以形成所述待分析SQL语句。
4.如权利要求1所述的基于追踪技术的SQL性能分析方法,其特征在于,所述根据执行计划对所述待分析SQL语句进行性能分析以得到SQL性能分析结果的步骤具体包括:
根据所述执行计划中的扫描行的数量是否超过阈值对所述待分析SQL语句进行性能分析以得到SQL性能分析结果。
5.如权利要求4所述的基于追踪技术的SQL性能分析方法,其特征在于,在所述根据所述执行计划中的扫描行的数量是否超过阈值对所述待分析SQL语句进行性能分析以得到SQL性能分析结果的步骤之后,所述SQL性能分析方法还包括以下步骤:
在所述扫描行的数量超过所述阈值时发送风险警告邮件。
6.如权利要求1所述的基于追踪技术的SQL性能分析方法,其特征在于,在所述通过追踪插件获取应用程序运行的原始SQL语句和对应的参数的步骤之前,所述SQL性能分析方法还包括:
通过所述追踪插件获取所述应用程序的运行状态;
判断所述运行状态是否异常;
若是,停止获取所述原始SQL语句和对应的参数并发送运行异常信息;和/或,
在所述通过追踪插件获取应用程序运行的原始SQL语句和对应的参数的步骤之前,所述SQL性能分析方法还包括:
通过所述追踪插件接收过滤信息并基于所述过滤信息停止获取对应的所述原始SQL语句和参数。
7.一种基于追踪技术的SQL性能分析系统,其特征在于,包括:数据追踪模块和数据分析模块;
所述数据追踪模块用于通过追踪插件获取应用程序运行的原始SQL语句和对应的参数,并将所述原始SQL语句与所述参数进行匹配以得到匹配SQL语句,并发送至所述数据分析模块;
所述数据分析模块用于获取所述匹配SQL语句并进行组装以得到待分析SQL语句,并根据执行计划对所述待分析SQL语句进行性能分析以得到SQL性能分析结果。
8.如权利要求7所述的基于追踪技术的SQL性能分析系统,其特征在于,所述数据追踪模块还包括数据存储模块;
所述追踪插件还用于将所述原始SQL语句与所述参数进行匹配发送至消息队列,所述消息队列设置于所述数据存储模块中;
所述数据分析模块还用于接收所述数据存储模块中的所述消息队列中的匹配后的SQL语句并进行组装以形成所述待分析SQL语句;
和/或,
所述数据分析模块还用于判断所述执行计划中的扫描行的数量是否超过阈值,并在所述扫描行的数量超过所述阈值时发送风险警告邮件。
9.如权利要求7所述的基于追踪技术的SQL性能分析系统,其特征在于,所述追踪插件还用于获取所述应用程序的运行状态并发送至所述数据分析模块;
所述数据分析模块还用于判断所述运行状态是否异常,若是发出运行异常信息至所述追踪插件;
所述追踪插件还用于基于所述运行异常信息停止获取所述原始SQL语句和对应的参数。
10.如权利要求7所述的基于追踪技术的SQL性能分析系统,其特征在于,所述数据分析模块还用于设置过滤信息并将所述过滤信息发送至所述数据追踪模块,所述过滤信息用于过滤预设的SQL语句及对应的参数信息;
所述数据追踪模块还用于通过所述追踪插件接收所述过滤信号并基于所述过滤信息停止获取对应的所述原始SQL语句和参数。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任一种基于追踪技术的SQL性能分析方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至6中任一种基于追踪技术的SQL性能分析方法的步骤。
CN202010939020.0A 2020-09-09 2020-09-09 基于追踪技术的sql性能分析方法、系统、设备及介质 Pending CN112069202A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010939020.0A CN112069202A (zh) 2020-09-09 2020-09-09 基于追踪技术的sql性能分析方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010939020.0A CN112069202A (zh) 2020-09-09 2020-09-09 基于追踪技术的sql性能分析方法、系统、设备及介质

Publications (1)

Publication Number Publication Date
CN112069202A true CN112069202A (zh) 2020-12-11

Family

ID=73662905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010939020.0A Pending CN112069202A (zh) 2020-09-09 2020-09-09 基于追踪技术的sql性能分析方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN112069202A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609541A (zh) * 2012-02-21 2012-07-25 德讯科技股份有限公司 基于mssql数据库的sql信息采集审计系统
CN106372135A (zh) * 2016-08-26 2017-02-01 深圳市卓讯信息技术有限公司 一种结构化查询语言sql执行效率跟踪方法及装置
CN106445795A (zh) * 2016-09-26 2017-02-22 中国工商银行股份有限公司 一种数据库sql效率检测方法及装置
CN110618940A (zh) * 2019-09-19 2019-12-27 腾讯科技(深圳)有限公司 堆栈信息追踪方法、装置、计算机可读介质及计算装置
CN110716912A (zh) * 2018-07-12 2020-01-21 马上消费金融股份有限公司 一种sql性能检测方法及服务器
CN111124906A (zh) * 2019-12-17 2020-05-08 支付宝(杭州)信息技术有限公司 基于动态埋点的跟踪方法、编译方法、装置和电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609541A (zh) * 2012-02-21 2012-07-25 德讯科技股份有限公司 基于mssql数据库的sql信息采集审计系统
CN106372135A (zh) * 2016-08-26 2017-02-01 深圳市卓讯信息技术有限公司 一种结构化查询语言sql执行效率跟踪方法及装置
CN106445795A (zh) * 2016-09-26 2017-02-22 中国工商银行股份有限公司 一种数据库sql效率检测方法及装置
CN110716912A (zh) * 2018-07-12 2020-01-21 马上消费金融股份有限公司 一种sql性能检测方法及服务器
CN110618940A (zh) * 2019-09-19 2019-12-27 腾讯科技(深圳)有限公司 堆栈信息追踪方法、装置、计算机可读介质及计算装置
CN111124906A (zh) * 2019-12-17 2020-05-08 支付宝(杭州)信息技术有限公司 基于动态埋点的跟踪方法、编译方法、装置和电子设备

Similar Documents

Publication Publication Date Title
US8752182B2 (en) Pinpointing security vulnerabilities in computer software applications
US7900198B2 (en) Method and system for parameter profile compiling
US7689872B2 (en) Autonomic program error detection and correction
US20140109053A1 (en) Identifying high impact bugs
US20110191752A1 (en) Method and System for Debugging of Software on Target Devices
CN111309343B (zh) 一种开发部署方法及装置
US10528456B2 (en) Determining idle testing periods
US20160274997A1 (en) End user monitoring to automate issue tracking
CN111382048B (zh) 真机测试平台上移动设备的管理方法和装置
CN112181833A (zh) 一种智能化模糊测试方法、装置及系统
CN113946499A (zh) 一种微服务链路跟踪及性能分析方法、系统、设备及应用
US20080127119A1 (en) Method and system for dynamic debugging of software
CN111309570A (zh) 压力测试方法、介质、装置和计算设备
WO2013121394A1 (en) Remote debugging service
CN110334523B (zh) 一种漏洞检测方法、装置、智能终端及存储介质
US9354962B1 (en) Memory dump file collection and analysis using analysis server and cloud knowledge base
US20050149809A1 (en) Real time determination of application problems, using a lightweight diagnostic tracer
CN115454856A (zh) 多应用的安全检测方法、装置、介质及电子设备
CN112069202A (zh) 基于追踪技术的sql性能分析方法、系统、设备及介质
US20210182453A1 (en) Application behavior identification
US20150007139A1 (en) Optimizing error parsing in an integrated development environment
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN113626288A (zh) 故障处理方法、系统、装置、存储介质和电子设备
JP5592828B2 (ja) パッチ影響解析装置、方法及びプログラム
Flora et al. µDetector: Automated Intrusion Detection for Microservices

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