CN104778185B - 异常结构化查询语言sql语句确定方法及服务器 - Google Patents

异常结构化查询语言sql语句确定方法及服务器 Download PDF

Info

Publication number
CN104778185B
CN104778185B CN201410018621.2A CN201410018621A CN104778185B CN 104778185 B CN104778185 B CN 104778185B CN 201410018621 A CN201410018621 A CN 201410018621A CN 104778185 B CN104778185 B CN 104778185B
Authority
CN
China
Prior art keywords
sql statement
collection period
business sql
business
average performance
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
Application number
CN201410018621.2A
Other languages
English (en)
Other versions
CN104778185A (zh
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.)
China Mobile Group Beijing Co Ltd
Original Assignee
China Mobile Group Beijing 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 China Mobile Group Beijing Co Ltd filed Critical China Mobile Group Beijing Co Ltd
Priority to CN201410018621.2A priority Critical patent/CN104778185B/zh
Publication of CN104778185A publication Critical patent/CN104778185A/zh
Application granted granted Critical
Publication of CN104778185B publication Critical patent/CN104778185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种异常结构化查询语言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语句的平均执行时间的增长速率,具体包括:
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间;
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
具体的,根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具体包括:
针对每个所述第二业务SQL语句,执行:
按照时间先后顺序对所述当前采集周期和每个所述选定采集周期进行编号,建立编号与对应的平均执行时间的二元组;
根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为所述当前第二业务SQL语句的平均执行时间的增长速率。
可选的,还包括:
将平均执行时间的增长速率小于等于所述第一设定阈值的第二业务SQL语句作为第三业务SQL语句;
根据每个所述第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在所述当前采集周期的下一个采集周期内的平均执行时间;
根据获取的每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;
计算每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值,比值大于第二设定阈值的第三业务SQL为异常SQL语句。
具体的,根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体包括:
通过下列公式得到b和a:
其中,为所述当前第二业务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语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为所述当前第二业务SQL语句的平均执行时间的增长速率。
可选的,所述计算单元,还用于将平均执行时间的增长速率小于等于所述第一设定阈值的第二业务SQL语句作为第三业务SQL语句;根据每个所述第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在所述当前采集周期的下一个采集周期内的平均执行时间;根据获取的每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;计算每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值;
所述判定单元,还用于判定比值大于第二设定阈值的第三业务SQL为异常SQL语句。
具体的,所述计算单元,用于根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体用于:
通过下列公式得到b和a:
其中,为所述当前第二业务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语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为所述当前第二业务SQL语句的平均执行时间的增长速率。
具体的,所述第一处理器,还用于:
将平均执行时间的增长速率小于等于所述第一设定阈值的第二业务SQL语句作为第三业务SQL语句;
根据每个所述第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在所述当前采集周期的下一个采集周期内的平均执行时间;
根据获取的每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;
计算每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值;
所述第二处理器,还用于判定比值大于第二设定阈值的第三业务SQL为异常SQL语句。
具体的,所述第一处理器,用于根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体用于:
通过下列公式得到b和a:
其中,为所述当前第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间的平均值,为所述当前第二业务SQL语句的编号的平均值,为所述当前第二业务SQL语句的编号的平方的平均值。
本发明实施例提供的异常SQL语句确定方法及服务器,该方案可以首先获取在当前采集周期内总执行时间较大的第一业务SQL语句作为第二业务SQL语句,然后根据每个第二业务SQL语句在当前采集周期以及当前采集周期之前的选定采集周期内的总执行时间和总执行次数,计算出每个第二业务SQL语句的平均执行时间的增长速率,判定平均执行时间的增长速率大于第一设定阈值的第二业务SQL语句为异常SQL语句,从而可以根据历史记录的业务SQL语句的总执行时间和总执行次数确定出异常SQL语句,在大量的***资源被消耗和用户体验受到影响之前就可以确定出异常SQL语句,有效避免异常SQL语句消耗大量的***资源和影响用户体验,保证***运行正常和用户体验良好。
附图说明
图1为本发明实施例中异常SQL语句确定方法的流程图;
图2为本发明实施例中拟合出的三个第二业务SQL语句的一元线性公式在直角坐标系中的直线示意图;
图3为本发明实施例中sql3的预测的平均执行时间和实际的平均执行时间的示意图;
图4为本发明实施例中第一种服务器的结构示意图;
图5为本发明实施例中第二种服务器的结构示意图。
具体实施方式
为了实现提前确定异常SQL语句,从而可以预防异常SQL语句消耗大量的***资源和影响用户体验,本发明实施例提供一种异常SQL语句确定方法,该方法的流程如图1所示,执行步骤如下:
S10:获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,将获取的总执行时间按照从大到小的顺序排序,位于第一设定个数之前的总执行时间对应的第一业务SQL语句作为第二业务SQL语句。
能够反映第一业务SQL语句执行效率的主要技术指标有很多:总执行次数、总执行时间、平均执行时间、处理时间、逻辑读、物理读、排序、解析次数(parse calls)、锁等待时间、执行计划等。平均执行时间是判断第一业务SQL语句执行效率最重要的指标,因此判断异常SQL语句主要使用了平均执行时间,在获取第一业务SQL语句的平均执行时间时,需要首选获取在一个时间段内的总执行时间和总执行次数。可以采集周期为单位,在每个采集周期到期后确定每个第一业务SQL语句的总执行时间和总执行次数,采集周期可以根据需要进行设定,例如可以设定0.5小时、1小时、2小时等等。
那么在当前采集周期到期后,就可以获取所有第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,只有总执行时间过长的第一业务SQL语句才有可能是异常SQL语句,因此,可以首先将所有第一业务SQL语句在当前采集周期内的总执行时间按照从大到小的顺序排序,从总执行时间最大的开始,获取第一设定个数的第一业务SQL语句作为第二业务SQL语句。第一设定个数可以根据需要进行设定,例如可以设为1000个、1500个、3000个等等。
S11:获取每个第二业务SQL语句在当前采集周期之前的第二设定个数的选定采集周期内的总执行时间和总执行次数。
除了获取每个第二业务SQL语句在当前采集周期内的总执行时间和总执行次数,还需要获取每个第二业务SQL语句在当前采集周期之前的第二设定个数的选定采集周期内的总执行时间和总执行次数,第二设定个数可以根据实际需要进行设定,例如可以设为20个、30个、40个等等。
S12:根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率。
S13:分别判断每个第二业务SQL语句的平均执行时间的增长速率是否大于第一设定阈值,若是,执行S14;否则,执行S15。
第一设定阈值可以根据实际情况进行设定,例如以每个第一业务SQL语句的平均执行时间每月增长不能超过0.1秒为判断标准,如果采集周期为1小时,则第一设定阈值可以为0.1/24/30=1/7200=0.00014秒。
S14:判定平均执行时间的增长速率大于第一设定阈值的第二业务SQL语句为异常SQL语句。
平均执行时间的增长率大于第一设定阈值,也就表明第二业务SQL语句的平均执行时间增长过快,那么就可以该第二业务SQL语句判定为异常SQL语句。
S15:将平均执行时间的增长速率小于等于第一设定阈值的第二业务SQL语句作为第三业务SQL语句。
S16:根据每个第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在当前采集周期的下一个采集周期内的平均执行时间。
可以拟合出每个第三业务SQL语句的一元线性公式,从而就可以预测对应第三业务SQL语句在当前采集周期的下一个采集周期内的平均执行时间。
S17:根据获取的每个第三业务SQL语句在当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间。
S18:计算每个第三业务SQL语句在当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值。
S19:比值大于第二设定阈值的第三业务SQL为异常SQL语句。
正常情况下,由于***负载和业务并发等条件限制,第二业务SQL语句的平均执行时间有一定差异是正常的,但如果差异过大,则很可能为异常SQL语句。第二设定阈值可以根据需要进行设定,例如设定为1.2、1.3、1.5、1.6等等。
该方案可以首先获取在当前采集周期内总执行时间较大的第一业务SQL语句作为第二业务SQL语句,然后根据每个第二业务SQL语句在当前采集周期以及当前采集周期之前的选定采集周期内的总执行时间和总执行次数,计算出每个第二业务SQL语句的平均执行时间的增长速率,判定平均执行时间的增长速率大于第一设定阈值的第二业务SQL语句为异常SQL语句,从而可以根据历史记录的业务SQL语句的总执行时间和总执行次数确定出异常SQL语句,在大量的***资源被消耗和用户体验受到影响之前就可以确定出异常SQL语句,有效避免异常SQL语句消耗大量的***资源和影响用户体验,保证***正常运行和用户体验良好。
具体的,上述S10中的获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,具体包括:
持续采集每个第一业务SQL语句的执行时间和执行次数;
将在当前采集周期到期后采集的每个第一业务SQL语句的执行时间、减去在当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时间,得到对应第一业务SQL语句在当前采集周期内的总执行时间;以及
将在当前采集周期到期后采集的每个第一业务SQL语句的执行次数、减去在当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行次数,得到对应第一业务SQL语句在当前采集周期内的总执行次数。
可以通过动态视图等等方式持续采集每个第一业务SQL语句的执行时间和执行次数,然后将在当前采集周期到期后采集的每个第一业务SQL语句的执行时间、减去在当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时间,得到对应第一业务SQL语句在当前采集周期内的总执行时间。也可以用相同的方法得到对应第一业务SQL语句在当前采集周期内的总执行次数。
具体的,上述S12中的根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率,具体包括:
根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间;
根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
具体的,上述根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具体包括:
针对每个第二业务SQL语句,执行:
按照时间先后顺序对当前采集周期和每个选定采集周期进行编号,建立编号与对应的平均执行时间的二元组;
根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为当前第二业务SQL语句的平均执行时间的增长速率。
具体的,上述根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体包括:
通过下列公式得到b和a:
其中,y为当前第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间的平均值,为当前第二业务SQL语句的编号的平均值,为当前第二业务SQL语句的编号的平方的平均值。
下面以采集周期为1小时,当前采集周期和选定采集周期的个数为20为例进行说明,假设某一个第二业务SQL语句按照时间先后顺序对当前采集周期和选定采集周期进行编号以及对应采集周期内的平均执行时间如下表所示:
编号 平均执行时间
1 2.091
2 2.079
3 2.099
4 2.134
5 2.183
6 2.193
7 2.195
8 2.236
9 2.214
10 2.265
11 2.331
12 2.354
13 2.378
14 2.42
15 2.465
16 2.428
17 2.416
18 2.474
19 2.53
20 2.546
则根据上表可以得到20个二元组(1,2.091)、……、(20,2.546),利用一元回归分析方法进行线性拟合,得到如下公式y=0.0252t+2.0369,可以通过该公式对后续采集周期内的平均执行时间进行预测,例如t=30时,即10个小时后,平均执行时间为:y=2.0369+0.0252*30=2.8秒。
在得到每个第二业务SQL语句的一元线性公式后,可以首先通过一元线性公式中b的值确定第二业务SQL语句的平均执行时间的增长速度,如图2所示为拟合出的三个第二业务SQL语句(分别记为sql2、sql4、sql4)的一元线性公式在直角坐标系中的直线,sql1为正常情况下的直线,为一条平缓的直线,sql1的平均执行时间缓慢增长,而sql2的平均执行时间的增长率为0.001,sql3的平均执行时间的增长率为0.00003,sql4的平均执行时间的增长率为0.003。如果第一设定阈值为0.00014,则sql2和sql4为异常SQL语句,sql3为正常SQL语句。对于sql2和sql4来说,一般为执行计划为全表扫描,且表中数据越来越多导致。
对于sql3,由于b的值没有超过0.00014,则可以继续通过对应的一元线性公式预测在下一个采集周期内的平均执行时间,从图3中可以看到,在t=275时间点根据拟合公式y=0.001t+0.4994,可以预测t=276时间点的执行时间为0.7754秒,而在t=276时间点,实际的平均执行时间为1.492秒,实际的平均执行时间与预测的平均执行时间的比值超过了1.2(假设第二设定阈值为1.2),则sql3为异常SQL语句。一般原因为执行计划突然变化,或者并发导致数据库锁。
在确定出异常SQL语句后,还可以分析产生的原因,提前进行优化解决,管理员可以进一步分析收集到的异常SQL语句的其它关键指标,例如,如果锁等待时间相比之前有明显增长,这说明异常SQL语句是由于业务锁导致,需要修改应用程序的业务逻辑,从而可以快速地消除异常SQL语句,保证***的正常运行和用户体验。
基于同一发明构思,本发明实施例提供一种服务器,该服务器的结构如图4所示,包括:
第一获取单元41,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,将获取的总执行时间按照从大到小的顺序排序,位于第一设定个数之前的总执行时间对应的第一业务SQL语句作为第二业务SQL语句;
第二获取单元42,用于获取每个第二业务SQL语句在当前采集周期之前的第二设定个数的选定采集周期内的总执行时间和总执行次数;
计算单元43,用于根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率;
判定单元44,用于分别判断每个第二业务SQL语句的平均执行时间的增长速率是否大于第一设定阈值,判定平均执行时间的增长速率大于第一设定阈值的第二业务SQL语句为异常SQL语句。
具体的,上述第一获取单元41,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,具体用于:
持续采集每个第一业务SQL语句的执行时间和执行次数;
将在当前采集周期到期后采集的每个第一业务SQL语句的执行时间、减去在当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时间,得到对应第一业务SQL语句在当前采集周期内的总执行时间;以及
将在当前采集周期到期后采集的每个第一业务SQL语句的执行次数、减去在当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行次数,得到对应第一业务SQL语句在当前采集周期内的总执行次数。
具体的,上述计算单元43,具体用于:
根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间;
根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
具体的,上述计算单元43,用于根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具体用于:
针对每个第二业务SQL语句,执行:
按照时间先后顺序对当前采集周期和每个选定采集周期进行编号,建立编号与对应的平均执行时间的二元组;
根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为当前第二业务SQL语句的平均执行时间的增长速率。
具体的,上述计算单元43,还用于将平均执行时间的增长速率小于等于第一设定阈值的第二业务SQL语句作为第三业务SQL语句;根据每个第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在当前采集周期的下一个采集周期内的平均执行时间;根据获取的每个第三业务SQL语句在当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;计算每个第三业务SQL语句在当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值;
判定单元44,还用于判定比值大于第二设定阈值的第三业务SQL为异常SQL语句。
具体的,上述计算单元43,用于根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体用于:
通过下列公式得到b和a:
其中,为当前第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间的平均值,为当前第二业务SQL语句的编号的平均值,为当前第二业务SQL语句的编号的平方的平均值。
基于同一发明构思,本发明实施例提供一种服务器,该服务器的结构如图5所示,包括:
第一处理器51,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,将获取的总执行时间按照从大到小的顺序排序,位于第一设定个数之前的总执行时间对应的第一业务SQL语句作为第二业务SQL语句;获取每个第二业务SQL语句在当前采集周期之前的第二设定个数的选定采集周期内的总执行时间和总执行次数;根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率;
第二处理器52,用于分别判断每个第二业务SQL语句的平均执行时间的增长速率是否大于第一设定阈值,判定平均执行时间的增长速率大于第一设定阈值的第二业务SQL语句为异常SQL语句。
具体的,上述第一处理器51,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,具体用于:
持续采集每个第一业务SQL语句的执行时间和执行次数;
将在当前采集周期到期后采集的每个第一业务SQL语句的执行时间、减去在当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时间,得到对应第一业务SQL语句在当前采集周期内的总执行时间;以及
将在当前采集周期到期后采集的每个第一业务SQL语句的执行次数、减去在当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行次数,得到对应第一业务SQL语句在当前采集周期内的总执行次数。
具体的,上述第一处理器51,用于根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率,具体用于:
根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间;
根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
具体的,上述第一处理器51,用于根据每个第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具体用于:
针对每个第二业务SQL语句,执行:
按照时间先后顺序对当前采集周期和每个选定采集周期进行编号,建立编号与对应的平均执行时间的二元组;
根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为当前第二业务SQL语句的平均执行时间的增长速率。
具体的,上述第一处理器51,还用于:
将平均执行时间的增长速率小于等于第一设定阈值的第二业务SQL语句作为第三业务SQL语句;
根据每个第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在当前采集周期的下一个采集周期内的平均执行时间;
根据获取的每个第三业务SQL语句在当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;
计算每个第三业务SQL语句在当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值;
第二处理器52,还用于判定比值大于第二设定阈值的第三业务SQL为异常SQL语句。
具体的,上述第一处理器51,用于根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体用于:
通过下列公式得到b和a:
其中,为当前第二业务SQL语句在当前采集周期以及每个选定采集周期内的平均执行时间的平均值,为当前第二业务SQL语句的编号的平均值,为当前第二业务SQL语句的编号的平方的平均值。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (18)

1.一种异常结构化查询语言SQL语句确定方法,其特征在于,包括:
获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,将获取的总执行时间按照从大到小的顺序排序,位于第一设定个数之前的总执行时间对应的第一业务SQL语句作为第二业务SQL语句;
获取每个所述第二业务SQL语句在所述当前采集周期之前的第二设定个数的选定采集周期内的总执行时间和总执行次数;
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率;
分别判断每个所述第二业务SQL语句的平均执行时间的增长速率是否大于第一设定阈值,判定平均执行时间的增长速率大于所述第一设定阈值的第二业务SQL语句为异常SQL语句。
2.如权利要求1所述的方法,其特征在于,获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,具体包括:
持续采集每个所述第一业务SQL语句的执行时间和执行次数;
将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行时间、减去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时间,得到对应第一业务SQL语句在所述当前采集周期内的总执行时间;以及
将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行次数、减去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行次数,得到对应第一业务SQL语句在所述当前采集周期内的总执行次数。
3.如权利要求1所述的方法,其特征在于,根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率,具体包括:
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间;
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
4.如权利要求3所述的方法,其特征在于,根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具体包括:
针对每个所述第二业务SQL语句,执行:
按照时间先后顺序对所述当前采集周期和每个所述选定采集周期进行编号,建立编号与对应的平均执行时间的二元组;
根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为所述当前第二业务SQL语句的平均执行时间的增长速率。
5.如权利要求4所述的方法,其特征在于,还包括:
将平均执行时间的增长速率小于等于所述第一设定阈值的第二业务SQL语句作为第三业务SQL语句;
根据每个所述第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在所述当前采集周期的下一个采集周期内的平均执行时间;
根据获取的每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;
计算每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值,比值大于第二设定阈值的第三业务SQL为异常SQL语句。
6.如权利要求4或5所述的方法,其特征在于,根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体包括:
通过下列公式得到b和a:
<mrow> <mi>b</mi> <mo>=</mo> <mfrac> <mrow> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>&amp;times;</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> </mrow> <mrow> <mover> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>;</mo> </mrow>
<mrow> <mi>a</mi> <mo>=</mo> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mi>b</mi> <mo>&amp;times;</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> <mo>;</mo> </mrow>
其中,为所述当前第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间的平均值,为所述当前第二业务SQL语句的编号的平均值,为所述当前第二业务SQL语句的编号的平方的平均值。
7.一种服务器,其特征在于,包括:
第一获取单元,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,将获取的总执行时间按照从大到小的顺序排序,位于第一设定个数之前的总执行时间对应的第一业务SQL语句作为第二业务SQL语句;
第二获取单元,用于获取每个所述第二业务SQL语句在所述当前采集周期之前的第二设定个数的选定采集周期内的总执行时间和总执行次数;
计算单元,用于根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率;
判定单元,用于分别判断每个所述第二业务SQL语句的平均执行时间的增长速率是否大于第一设定阈值,判定平均执行时间的增长速率大于所述第一设定阈值的第二业务SQL语句为异常SQL语句。
8.如权利要求7所述的服务器,其特征在于,所述第一获取单元,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,具体用于:
持续采集每个所述第一业务SQL语句的执行时间和执行次数;
将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行时间、减去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时间,得到对应第一业务SQL语句在所述当前采集周期内的总执行时间;以及
将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行次数、减去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行次数,得到对应第一业务SQL语句在所述当前采集周期内的总执行次数。
9.如权利要求7所述的服务器,其特征在于,所述计算单元,具体用于:
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间;
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
10.如权利要求9所述的服务器,其特征在于,所述计算单元,用于根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具体用于:
针对每个所述第二业务SQL语句,执行:
按照时间先后顺序对所述当前采集周期和每个所述选定采集周期进行编号,建立编号与对应的平均执行时间的二元组;
根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为所述当前第二业务SQL语句的平均执行时间的增长速率。
11.如权利要求10所述的服务器,其特征在于,所述计算单元,还用于将平均执行时间的增长速率小于等于所述第一设定阈值的第二业务SQL语句作为第三业务SQL语句;根据每个所述第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在所述当前采集周期的下一个采集周期内的平均执行时间;根据获取的每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;计算每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值;
所述判定单元,还用于判定比值大于第二设定阈值的第三业务SQL为异常SQL语句。
12.如权利要求10或11所述的服务器,其特征在于,所述计算单元,用于根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体用于:
通过下列公式得到b和a:
<mrow> <mi>b</mi> <mo>=</mo> <mfrac> <mrow> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>&amp;times;</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> </mrow> <mrow> <mover> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>;</mo> </mrow>
<mrow> <mi>a</mi> <mo>=</mo> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mi>b</mi> <mo>&amp;times;</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> <mo>;</mo> </mrow>
其中,为所述当前第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间的平均值,为所述当前第二业务SQL语句的编号的平均值,为所述当前第二业务SQL语句的编号的平方的平均值。
13.一种服务器,其特征在于,包括:
第一处理器,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,将获取的总执行时间按照从大到小的顺序排序,位于第一设定个数之前的总执行时间对应的第一业务SQL语句作为第二业务SQL语句;获取每个所述第二业务SQL语句在所述当前采集周期之前的第二设定个数的选定采集周期内的总执行时间和总执行次数;根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率;
第二处理器,用于分别判断每个所述第二业务SQL语句的平均执行时间的增长速率是否大于第一设定阈值,判定平均执行时间的增长速率大于所述第一设定阈值的第二业务SQL语句为异常SQL语句。
14.如权利要求13所述的服务器,其特征在于,第一处理器,用于获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,具体用于:
持续采集每个所述第一业务SQL语句的执行时间和执行次数;
将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行时间、减去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时间,得到对应第一业务SQL语句在所述当前采集周期内的总执行时间;以及
将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行次数、减去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行次数,得到对应第一业务SQL语句在所述当前采集周期内的总执行次数。
15.如权利要求13所述的服务器,其特征在于,所述第一处理器,用于根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速率,具体用于:
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间;
根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
16.如权利要求15所述的服务器,其特征在于,所述第一处理器,用于根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具体用于:
针对每个所述第二业务SQL语句,执行:
按照时间先后顺序对所述当前采集周期和每个所述选定采集周期进行编号,建立编号与对应的平均执行时间的二元组;
根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt;
将b作为所述当前第二业务SQL语句的平均执行时间的增长速率。
17.如权利要求16所述的服务器,其特征在于,所述第一处理器,还用于:
将平均执行时间的增长速率小于等于所述第一设定阈值的第二业务SQL语句作为第三业务SQL语句;
根据每个所述第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句在所述当前采集周期的下一个采集周期内的平均执行时间;
根据获取的每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;
计算每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的实际的平均执行时间与预测的平均执行时间的比值;
所述第二处理器,还用于判定比值大于第二设定阈值的第三业务SQL为异常SQL语句。
18.如权利要求16或17所述的服务器,其特征在于,所述第一处理器,用于根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均执行时间y关于编号t的一元线性公式y=a+bt,具体用于:
通过下列公式得到b和a:
<mrow> <mi>b</mi> <mo>=</mo> <mfrac> <mrow> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>&amp;times;</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> </mrow> <mrow> <mover> <msup> <mi>t</mi> <mn>2</mn> </msup> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>;</mo> </mrow>
<mrow> <mi>a</mi> <mo>=</mo> <mover> <mi>y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mi>b</mi> <mo>&amp;times;</mo> <mover> <mi>t</mi> <mo>&amp;OverBar;</mo> </mover> <mo>;</mo> </mrow>
其中,为所述当前第二业务SQL语句在所述当前采集周期以及每个所述选定采集周期内的平均执行时间的平均值,为所述当前第二业务SQL语句的编号的平均值,为所述当前第二业务SQL语句的编号的平方的平均值。
CN201410018621.2A 2014-01-15 2014-01-15 异常结构化查询语言sql语句确定方法及服务器 Active CN104778185B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410018621.2A CN104778185B (zh) 2014-01-15 2014-01-15 异常结构化查询语言sql语句确定方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410018621.2A CN104778185B (zh) 2014-01-15 2014-01-15 异常结构化查询语言sql语句确定方法及服务器

Publications (2)

Publication Number Publication Date
CN104778185A CN104778185A (zh) 2015-07-15
CN104778185B true CN104778185B (zh) 2018-01-30

Family

ID=53619652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410018621.2A Active CN104778185B (zh) 2014-01-15 2014-01-15 异常结构化查询语言sql语句确定方法及服务器

Country Status (1)

Country Link
CN (1) CN104778185B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107784003B (zh) * 2016-08-26 2021-09-21 菜鸟智能物流控股有限公司 数据查询异常检测方法、装置、设备及***
CN107818093A (zh) * 2016-09-12 2018-03-20 华为技术有限公司 一种sql脚本的定位方法、装置及***
CN106682101B (zh) * 2016-12-05 2019-09-20 福建天晴数码有限公司 一种数据库脚本运行异常检测的方法及***
CN108628909B (zh) * 2017-03-24 2022-04-12 北京京东尚科信息技术有限公司 信息推送方法和装置
CN107391730B (zh) * 2017-08-02 2020-09-08 苏州浪潮智能科技有限公司 一种sql语句处理方法及装置
CN107609028B (zh) * 2017-08-09 2021-10-15 山东中创软件商用中间件股份有限公司 一种低效率sql语句的确定方法及装置
CN108804947B (zh) * 2018-06-19 2020-06-05 上海点融信息科技有限责任公司 用于确定对数据库进行操作的白名单的方法和装置
CN109542868A (zh) * 2018-09-28 2019-03-29 中国平安人寿保险股份有限公司 定位异常sql语句的方法、装置、电子设备及存储介质
CN110427259A (zh) * 2019-08-05 2019-11-08 北京奇艺世纪科技有限公司 一种任务处理方法及装置
CN113297249A (zh) * 2021-01-25 2021-08-24 阿里云计算有限公司 慢查询语句的识别和分析、查询语句的统计方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840352A (zh) * 2010-04-29 2010-09-22 中兴通讯股份有限公司 一种数据库连接池的监控方法及装置
CN103186603A (zh) * 2011-12-29 2013-07-03 ***通信集团浙江有限公司 确定sql语句对关键业务的性能的影响的方法、***和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2401211B (en) * 2003-04-30 2005-07-20 Oracle Int Corp SQL join elimination

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840352A (zh) * 2010-04-29 2010-09-22 中兴通讯股份有限公司 一种数据库连接池的监控方法及装置
CN103186603A (zh) * 2011-12-29 2013-07-03 ***通信集团浙江有限公司 确定sql语句对关键业务的性能的影响的方法、***和设备

Also Published As

Publication number Publication date
CN104778185A (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
CN104778185B (zh) 异常结构化查询语言sql语句确定方法及服务器
US10216793B2 (en) Optimization of continuous queries in hybrid database and stream processing systems
US6691099B1 (en) Method and system for histogram determination in a database
US9836504B2 (en) Query progress estimation based on processed value packets
Duggan et al. Contender: A Resource Modeling Approach for Concurrent Query Performance Prediction.
CN111294819B (zh) 一种网络优化方法及装置
CN109254901B (zh) 一种指标监测方法及***
EP3416065B1 (en) Query method and query device
US10191947B2 (en) Partitioning advisor for online transaction processing workloads
US20120271845A1 (en) Processing records in dynamic ranges
CN110333983A (zh) 业务监控及搜索业务监控方法及装置
CN102147816A (zh) 一种案件统计及趋势分析***
CN106909454B (zh) 一种规则处理方法和设备
US20110283283A1 (en) Determining multiprogramming levels
CN112346962B (zh) 一种应用于对照测试***中的对照数据测试方法及装置
Katsipoulakis et al. Spear: Expediting stream processing with accuracy guarantees
WO2022088809A1 (zh) 确定检测服务器的间隔时间的方法、***、设备及介质
CN104462461B (zh) 对表单进行排查空值处理的方法及装置
CN106603661B (zh) 一种适用于云平台的动态资源平衡调度方法
CN116680289A (zh) 分布式数据库索引推荐监控***及方法
CN105302909B (zh) 基于分区偏移计算的网络安全日志***大数据检索方法
CN106487570A (zh) 一种评估网络性能指标变化趋势的方法及设备
CN109815260A (zh) 波形显示装置、波形参数统计方法、终端设备及存储介质
CN115018124A (zh) 数据预测方法、***、设备及存储介质
CN115438056A (zh) 一种数据获取方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant