CN116627787A - 一种sql语句的性能分析方法、装置、计算机设备和介质 - Google Patents
一种sql语句的性能分析方法、装置、计算机设备和介质 Download PDFInfo
- Publication number
- CN116627787A CN116627787A CN202310609632.7A CN202310609632A CN116627787A CN 116627787 A CN116627787 A CN 116627787A CN 202310609632 A CN202310609632 A CN 202310609632A CN 116627787 A CN116627787 A CN 116627787A
- Authority
- CN
- China
- Prior art keywords
- sql
- execution
- sql statement
- statement
- sentences
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 163
- 230000002159 abnormal effect Effects 0.000 claims abstract description 60
- 230000008569 process Effects 0.000 claims abstract description 33
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims 1
- 238000005457 optimization Methods 0.000 abstract description 11
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 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/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开一种SQL语句的性能分析方法、装置、计算机设备和介质,可应用于大数据领域或金融领域,在进行单次交易的操作过程中,获取单次交易对应的执行SQL语句,确定执行SQL语句对应的SQL方法名。由于不同的执行SQL语句的SQL方法名不同,若SQL方法名相同,可认为是相同的执行SQL语句,相同的方法名重复出现,表明某一SQL语句被重复执行,故可以根据SQL方法名统计执行SQL语句对应的执行次数。最后,可以将执行次数大于第一阈值的执行SQL语句确定为异常SQL语句。基于此,可以在单次交易的操作过程中,确定出重复执行的SQL语句,以便后续进行优化,相较于人工分析的方式,能够提高分析效率,同时能够减免人工分析带来的主观偏差,提高分析准确性。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种SQL语句的性能分析方法、装置、计算机设备和介质。
背景技术
在系统开发过程中,通常可以是基于结构化查询语言(Structured QueryLanguage,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语句被重复执行,故可以根据SQL方法名统计执行SQL语句对应的执行次数。最后,可以将执行次数大于第一阈值的执行SQL语句确定为异常SQL语句,即,异常SQL语句可以是指重复执行超过第一阈值的SQL语句。基于此,可以在单次交易的操作过程中,确定出重复执行的SQL语句,以便后续进行优化,相较于人工分析的方式,能够提高分析效率,同时能够减免人工分析带来的主观偏差,提高分析准确性。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种SQL语句的性能分析方法的流程图;
图2为本申请实施例提供的一种SQL语句的性能分析方法的逻辑图;
图3为本申请实施例提供的一种SQL语句的性能分析装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例所提供的SQL语句的性能分析方法可以通过计算机设备实施,该计算机设备可以是终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请对此不做任何限制。
需要说明的是,本申请提供的一种SQL语句的性能分析方法、装置、计算机设备和介质可用大数据领域或金融领域。上述仅为示例,并不对本申请提供的一种SQL语句的性能分析方法、装置、计算机设备和介质的应用领域进行限定。
具体通过如下实施例进行说明:
图1为本申请实施例提供的一种SQL语句的性能分析方法的流程图,以终端设备作为前述计算机设备为例进行说明,所述方法包括S101-S104:
S101:在进行单次交易的操作过程中,获取单次交易对应的执行SQL语句。
在银行业务中,可以开发交易系统以支持银行业务中的各种交易,例如转账交易、支付交易等。在实际应用中,交易系统可以包括多个模块,例如用户信息校验模块、合法性校验模块等等,为了提高效率在开发交易系统时,通常是多方协作开发设计SQL语句,交易系统开发完成后可以进行各种交易,具体可以通过调用对应的SQL语句并执行这些SQL语句的方式实现业务交易。然而,不同开发方的技术能力层次不齐,所设计的SQL语句的逻辑不同(例如语言处理逻辑或者调用逻辑),为了快速定位重复执行的异常SQL,本申请提出了一种SQL语句的性能分析方法,首先可以设计测试阶段,在测试阶段,通过进行交易并对交易过程中的SQL语句进行性能分析,以确定异常SQL。
可以理解的是,交易系统可以支持多种交易,不同的交易之间可能存在调用相同的SQL语句,故为了保证能够准确定位异常SQL语句,在本申请中,可以针对单次交易进行SQL语句的性能分析,其中,单次交易可以是指某一交易的一次交易过程。具体的,可以在进行单次交易的操作过程中,获取单次交易对应的执行SQL语句,执行SQL语句可以是指完成此次交易被调用执行的SQL语句。
在实际应用中,可以通过增加切面的方式获取单次交易的交易入口的统一资源定位系统(Uniform Resource Locator,URL)以及单次交易的交易名,基于此,可以针对获取到的单次交易的执行SQL语句与该单次交易建立对应关系。也就是说,可以从单次交易的维度分析异常SQL语句,避免多个交易调用同一SQL语句对统计SQL语句的执行次数造成干扰,同时,有利于后续定位异常SQL语句。针对如何获取执行SQL语句的方式,可以是通过增加代理的方式获取。
S102:确定执行SQL语句对应的SQL方法名。
在获取到执行SQL语句之后,可以确定执行SQL语句对应的SQL方法名。通常,不同的执行SQL语句的SQL方法名不同,若SQL方法名相同,可以认为是相同的执行SQL语句,后续便可以利用SQL方法名进行异常定位。
需要说明的是,针对如何确定执行SQL语句对应的SQL方法名的方式,本申请不做任何限定。为了便于理解,本申请实施例提供以下方式作为示例:
由于本申请提供的SQL语句的性能分析方法是在单次交易的操作过程中进行的,故可认为是一种动态分析方式,因此,在一种可能的实现方式中,可以利用Java的反射机制这种能够动态获取信息的方式获取SQL方法名。具体实施时,可以在执行SQL语句的运行过程中,利用Java的反射机制获取执行SQL语句对应的SQL方法名。基于此,可以利用Java的反射机制快速获取执行SQL语句对应的SQL方法名。
在实际应用中,SQL语句中可以包括方法名参数,利用方法名参数记载当前SQL语句的SQL方法名。因此,在又一种可能的实现方式中,可以对执行SQL语句进行解析,确定执行SQL语句包括的方法名参数,接着,可以根据方法名参数确定执行SQL语句对应的SQL方法名。基于此,通过解析确定SQL语句包括的方法名参数的方式,确定对应的SQL方法名。
S103:根据SQL方法名统计执行SQL语句对应的执行次数。
S104:将执行次数大于第一阈值的执行SQL语句确定为异常SQL语句。
由于不同的执行SQL语句的SQL方法名不同,若SQL方法名相同,可以认为是相同的执行SQL语句,相同的方法名重复出现,表明某一SQL语句被重复执行,故可以通过SQL方法名统计执行SQL语句对应的执行次数,以便分析是否出现重复执行等异常。具体的,可以根据SQL方法名统计执行SQL语句对应的执行次数,执行次数可以表征执行SQL语句在单次交易过程中被执行的次数,能够用于评估执行SQL语句是否存在重复执行等异常。具体的,可以将执行次数大于第一阈值的执行SQL语句确定为异常SQL语句,其中,第一阈值可以是根据实际情况设置的,例如可以是开发人员根据经验设置的,第一阈值可以是指重复执行的次数限值,执行次数超过第一阈值则认为存在重复执行,相应确定为异常,执行次数未超过第一阈值则认为不存在重复执行,相应确定不存在异常。
在实际应用中,单次交易的操作过程可以包括多个步骤的操作,通常,不同步骤对应的目的不同,相应的,所调用的执行SQL语句不同。也就是说,更多的情况中,执行SQL语句可以包括多条执行SQL语句。对此,利用前述的Java的反射机制获取多条执行SQL语句对应的SQL方法名,可以将获取到的SQL方法名以Map的形式存储到线程缓存中,以便后续统计执行次数。需要说明的是,由于一次交易中可能涉及多个方法的处理或调用,故在将利用Java的反射机制获取的SQL方法名以Map的形式存储到线程缓存中时,可以确定SQL语句与此次交易中所调用的方法间的对应关系,如此,便于定位异常SQL语句是此次交易中的哪个方法所涉及的,有利于定位及后续的优化调整等,以及还可以统计某个方法对应的SQL语句执行次数,对单个方法进行评估与异常定位。为了更好地理解,本申请将以执行SQL语句可以包括n条执行SQL语句为例,其中,n为大于1的整数,对根据SQL方法名统计执行SQL语句对应的执行次数的方式进行说明,具体的:
可以根据n条执行SQL语句分别对应的SQL方法名,将SQL方法名相同的执行SQL语句确定为一条目标执行SQL语句,得到m条目标执行SQL语句,m为小于或等于n的正整数。接着,针对m条目标执行SQL语句中的每条目标执行SQL语句,可以统计目标执行SQL语句对应的SQL方法名的存在次数作为目标执行SQL语句对应的执行次数。例如,以单次交易的交易名为维护产品矩阵详情,此次交易的方法是查询目录,n=6为例,第1条执行SQL语句、第2条执行SQL语句以及第3条执行SQL语句的SQL方法名相同,则可以认为这三条执行SQL语句是同一条执行SQL语句,故可以将这三条执行SQL语句确定为一条目标执行SQL语句。第4条执行SQL语句、第5条执行SQL语句以及第6条执行SQL语句的SQL方法名各不相同,且与前面3条的SQL方法名也不相同,则对应可以得到3条目标执行SQL语句。最终,对于n=6的情况,可以得到m=4共4条目标执行SQL语句。接着,针对4条目标执行SQL语句中的第1条目标执行SQL语句(假设第1条目标执行SQL语句为前面3条执行SQL语句对应的),则SQL方法名的存在次数为3次,即可确定该目标执行SQL语句对应的执行次数为3次,类似可以得到其他目标执行SQL语句对应的执行次数均为1次。
对应的,在确定异常SQL语句时,可以直接从m条目标执行SQL语句中筛选执行次数大于第一阈值的目标执行SQL语句确定为异常SQL语句。仍以前述n=6、m=4为例,可以设置第一阈值为两次,则可以从4条目标执行SQL语句中筛选确定第1条目标执行SQL语句为异常SQL语句。基于此,可以通过统计方法名的存在次数的方式确定执行次数,进而利用执行次数判断是否为异常SQL语句。
可以理解的是,异常SQL语句的数量可以是零条,也可以大于零条。当存在异常SQL语句时,表明存在重复执行的情况,例如可以是SQL语句在设计时其逻辑可能存在循环调用,使得循环调用出现重复执行。因此,在一种可能的实现方式中,若确定存在异常SQL语句,可以生成第一提示信息,第一提示信息可以用于指示单次交易中存在的异常SQL语句。基于此,在确定存在异常SQL语句时,可以及时生成第一提示信息,以便辅助开发人员定位有问题的SQL语句,并进行优化等。在实际应用中,第一提示信息例如可以是“在某交易的某方法下,某SQL语句执行次数过多”,便于开发人员可以通过第一提示信息清楚地了解到性能分析结果。
在实际应用中,当生成第一提示信息之后,可以利用展示设备展示第一提示信息,以便开发人员及时了解性能分析结果。相应的,开发人员可以利用第一提示信息进行后续的优化等处理。具体实施时,可以根据第一提示信息定位异常SQL语句,确定异常SQL语句是哪个交易哪个方法,并对异常SQL语句的调用逻辑进行调整,得到调整后SQL语句。基于此,通过对调用逻辑进行调整,对循环调用等问题进行优化,减免调整后SQL语句在调用时出现重复执行等。例如,仍以前述交易名为维护产品矩阵详情的单次交易为例,执行次数为3次的目标执行SQL语句即为确定出的异常SQL语句,相应可以对其调用逻辑进行调整,实现优化目的。
在实际应用中,对于单次交易而言,从交易开始到交易结束,SQL执行总次数通常处于一定水平,若总次数过多,虽然可以完成交易,但需要的设备性能开销比较高,也就是说,SQL执行总次数过多将会影响交易系统对单次交易在实际应用工作中的响应效率。针对这种情况,也是可以通过优化的方式使得代码更优,以更小的性能开销完成交易。因此,在一种可能的实现方式中,可以确定单次交易对应的SQL执行总次数,SQL执行总次数可以是指单次交易开始到结束总共的执行次数。若SQL执行总次数大于第二阈值,表明完成此次交易总共的执行次数过多,此时可以将单次交易对应的执行逻辑确定为待定逻辑,其中,单次交易对应的执行逻辑由执行SQL语句组成,执行逻辑可以反映单次交易从开始到结束的执行过程,确定执行逻辑为待定逻辑表明当前的执行逻辑并非最优,可以进行优化。基于此,通过统计单次交易对应的SQL执行总次数,以确定当前的执行逻辑是否为最优。
需要说明的是,第二阈值可以是根据实际情况设置的,例如可以是开发人员根据经验设置的(如第二阈值可以是50次)。在实际应用中,对于不同类型的交易,复杂程度不同,交易的操作过程不同,可能需要执行的总次数存在差异,因此可以根据单次交易所属交易的类型设置第二阈值,即,第二阈值是和交易的类型对应的,如此,针对不同类型的交易,可以灵活设置第二阈值,有利于更为准确地评估当前交易的执行逻辑是否最优。
在实际应用中,若单次交易对应的执行逻辑为待定逻辑,此时,若确定不存在异常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语句,以便后续进行优化,相较于人工分析的方式,能够提高分析效率,同时能够减免人工分析带来的主观偏差,提高分析准确性。
为了便于理解,对应的,本申请实施例还提供了图2示出的一种SQL语句的性能分析方法的逻辑图,具体的,在测试阶段,可以首先控制交易开始(即前述的单次交易),该交易的操作过程可以包括操作1、……、操作n(n为正整数)多个步骤,在操作过程中,可以拦截执行SQL语句,并解析执行SQL语句,记录参数(例如前述的方法名参数),并记录对应的执行次数+1。当解析记录的参数相同时,认为是重复执行,对应的执行次数累计+1。这种在操作过程中对SQL语句的性能进行分析的方式也可以认为是在操作过程中采用性能探针的方式,即利用性能探针的方式完成性能分析。在实际应用中,可以是在SQL语句运行时进行拦截。最后,可以输出异常SQL语句,异常SQL语句可以是指执行次数超过预警(即大于第一阈值)的那部分执行SQL语句,最后,交易结束,完成分析,开发人员可以根据输出的异常SQL语句进行优化等后续处理。
可以理解的是,其基本对应于方法实施例,所以相关之处可以参见方法实施例的部分说明。
图3为本申请实施例提供的一种SQL语句的性能分析装置的结构图,所述装置包括获取单元301、确定单元302和统计单元303:
所述获取单元301,用于在进行单次交易的操作过程中,获取所述单次交易对应的执行SQL语句;
所述确定单元302,用于确定所述执行SQL语句对应的SQL方法名;
所述统计单元303,用于根据所述SQL方法名统计所述执行SQL语句对应的执行次数;
所述确定单元302,还用于将所述执行次数大于第一阈值的执行SQL语句确定为异常SQL语句。
在一种可能的实现方式中,所述执行SQL语句包括n条执行SQL语句,n为大于1的整数,所述统计单元还用于:
根据所述n条执行SQL语句分别对应的SQL方法名,将所述SQL方法名相同的执行SQL语句确定为一条目标执行SQL语句,得到m条目标执行SQL语句,m为小于或等于n的正整数;
针对所述m条目标执行SQL语句中的每条目标执行SQL语句,统计所述目标执行SQL语句对应的SQL方法名的存在次数作为所述目标执行SQL语句对应的执行次数;
所述确定单元,还用于从所述m条目标执行SQL语句中筛选所述执行次数大于所述第一阈值的目标执行SQL语句确定为所述异常SQL语句。
在一种可能的实现方式中,所述确定单元还用于:
在所述执行SQL语句的运行过程中,利用Java的反射机制获取所述执行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语句的性能分析方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:Read-only Memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语(如果存在)仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请实施例提供的一种SQL语句的性能分析方法、装置、计算机设备和介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法。同时,对于本领域的一般技术人员,依据本申请的方法,在具体实施方式及应用范围上均会有改变之处。
综上所述,本说明书内容不应理解为对本申请的限制,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。而且本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
Claims (10)
1.一种SQL语句的性能分析方法,其特征在于,所述方法包括:
在进行单次交易的操作过程中,获取所述单次交易对应的执行SQL语句;
确定所述执行SQL语句对应的SQL方法名;
根据所述SQL方法名统计所述执行SQL语句对应的执行次数;
将所述执行次数大于第一阈值的执行SQL语句确定为异常SQL语句。
2.根据权利要求1所述的方法,其特征在于,所述执行SQL语句包括n条执行SQL语句,n为大于1的整数,所述根据所述SQL方法名统计所述执行SQL语句对应的执行次数,包括:
根据所述n条执行SQL语句分别对应的SQL方法名,将所述SQL方法名相同的执行SQL语句确定为一条目标执行SQL语句,得到m条目标执行SQL语句,m为小于或等于n的正整数;
针对所述m条目标执行SQL语句中的每条目标执行SQL语句,统计所述目标执行SQL语句对应的SQL方法名的存在次数作为所述目标执行SQL语句对应的执行次数;
所述将所述执行次数大于第一阈值的执行SQL语句确定为异常SQL语句,包括:
从所述m条目标执行SQL语句中筛选所述执行次数大于所述第一阈值的目标执行SQL语句确定为所述异常SQL语句。
3.根据权利要求1所述的方法,其特征在于,所述确定所述执行SQL语句对应的SQL方法名,包括:
在所述执行SQL语句的运行过程中,利用Java的反射机制获取所述执行SQL语句对应的SQL方法名。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定存在所述异常SQL语句,生成第一提示信息;所述第一提示信息用于指示所述单次交易中存在的所述异常SQL语句。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述第一提示信息定位所述异常SQL语句;
对所述异常SQL语句的调用逻辑进行调整,得到调整后SQL语句。
6.根据权利要求1-5中任意一项所述的方法,其特征在于,所述方法还包括:
确定所述单次交易对应的SQL执行总次数;
若所述SQL执行总次数大于第二阈值,将所述单次交易对应的执行逻辑确定为待定逻辑;所述单次交易对应的执行逻辑由所述执行SQL语句组成。
7.根据权利要求6所述的方法,其特征在于,若所述单次交易对应的执行逻辑为所述待定逻辑,所述方法还包括:
若确定不存在所述异常SQL语句,生成第二提示信息;
根据所述第二提示信息对所述单次交易对应的执行逻辑进行优化。
8.一种SQL语句的性能分析装置,其特征在于,所述装置包括获取单元、确定单元和统计单元:
所述获取单元,用于在进行单次交易的操作过程中,获取所述单次交易对应的执行SQL语句;
所述确定单元,用于确定所述执行SQL语句对应的SQL方法名;
所述统计单元,用于根据所述SQL方法名统计所述执行SQL语句对应的执行次数;
所述确定单元,还用于将所述执行次数大于第一阈值的执行SQL语句确定为异常SQL语句。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-7中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310609632.7A CN116627787A (zh) | 2023-05-26 | 2023-05-26 | 一种sql语句的性能分析方法、装置、计算机设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310609632.7A CN116627787A (zh) | 2023-05-26 | 2023-05-26 | 一种sql语句的性能分析方法、装置、计算机设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116627787A true CN116627787A (zh) | 2023-08-22 |
Family
ID=87596935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310609632.7A Pending CN116627787A (zh) | 2023-05-26 | 2023-05-26 | 一种sql语句的性能分析方法、装置、计算机设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627787A (zh) |
-
2023
- 2023-05-26 CN CN202310609632.7A patent/CN116627787A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019253860B2 (en) | Data quality analysis | |
CN106909510B (zh) | 一种获取测试用例的方法以及服务器 | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN106293891B (zh) | 多维投资指标监督方法 | |
US10534692B2 (en) | Tagged tracing, logging and performance measurements | |
US20180143897A1 (en) | Determining idle testing periods | |
US9131002B2 (en) | Web application monitoring | |
CN109409948B (zh) | 交易异常检测方法、装置、设备及计算机可读存储介质 | |
CN111382182A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114185791A (zh) | 一种数据映射文件的测试方法、装置、设备及存储介质 | |
CN111723004B (zh) | 敏捷软件开发的度量方法,度量数据输出方法以及装置 | |
CN112235358A (zh) | 数据的采集方法、装置、电子设备及计算机可读存储介质 | |
CN117033417A (zh) | 服务数据的处理方法、介质和计算机设备 | |
CN116627787A (zh) | 一种sql语句的性能分析方法、装置、计算机设备和介质 | |
CN112597036B (zh) | 一种通用测试挡板方法及装置 | |
US20180373758A1 (en) | Query performance degradation analysis timing | |
CN113360553B (zh) | 一种数据冷热程度评估方法及服务器 | |
CN115220984A (zh) | 一种业务应用监控方法、装置及电子设备、存储介质 | |
US8321844B2 (en) | Providing registration of a communication | |
CN113722083A (zh) | 大数据处理方法、装置、服务器及存储介质 | |
CN109614328B (zh) | 用于处理测试数据的方法和装置 | |
CN117687881A (zh) | 异步交易性能测试方法、装置及系统 | |
CN115185824A (zh) | 接口测试脚本开发方法及装置 | |
CN117573461A (zh) | 一种用于电力信息系统的信创适配性能验证的方法及系统 | |
CN114116519A (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 |