异常结构化查询语言sql语句确定方法及服务器的制造方法

文档序号:8457284阅读:312来源:国知局
异常结构化查询语言sql语句确定方法及服务器的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,尤指一种异常结构化查询语言(Structured Query Language, SQL)语句确定方法及服务器。
【背景技术】
[0002] SQL语句是一种对数据库中的数据进行定义和操作的句法,异常SQL语句(也可以 称为慢查询SQL语句或者大SQL语句)是指执行速度较慢且对数据库性能影响较大的业务 SQL语句。当用户使用客户端执行话费余额查询、套餐使用量查询等等操作时,客户端会向 服务器发送查询请求,服务器根据接收到的查询请求使用业务SQL语句在数据库中进行查 询,如果出现异常SQL语句,则会占用服务器大量的系统资源,查询速度也非常慢,在客户 端就表现为执行相关业务操作的速度较慢,影响用户体验。
[0003] 目前,确定异常SQL语句的方法是,当服务器大量的系统资源被消耗并且用户体 验不佳时,才会通过分析查出异常SQL语句,常用的分析方法包括以下两种:
[0004] 第一种,对于影响用户体验的相关业务,通过相关业务的特征(源地址、客户端名 称、相关业务表等)对数据库会话进行跟踪得到跟踪文件,然后分析跟踪文件确定相关的业 务SQL语句,进一步分析这些相关的业务SQL语句的执行计划、执行时间等确定出异常SQL 语句。
[0005] 第二种,对消耗大量的系统资源的业务SQL语句,按照执行时间、资源消耗量等等 进行排序找到排在前面的业务SQL,然后分析这些业务SQL语句的访问路径,判断这些业务 SQL的具体业务,最后确定出异常SQL语句。
[0006] 上述确定异常SQL语句的方法只能在异常SQL语句已经影响系统性能和用户体验 时,依靠专业人员进行分析才能确定出,无法在异常SQL语句刚出现还没有影响系统性能 和用户体验时进行预测分析。因此需要一种能提前确定异常SQL语句的方法,从而可以预 防异常SQL语句消耗大量的系统资源和影响用户体验。

【发明内容】

[0007] 本发明实施例提供一种异常SQL语句确定方法及服务器,用以提前确定异常SQL 语句,从而可以预防异常SQL语句消耗大量的系统资源和影响用户体验。
[0008] 因此,本发明实施例提供一种异常SQL语句确定方法,包括:
[0009] 获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次数,将获 取的总执行时间按照从大到小的顺序排序,位于第一设定个数之前的总执行时间对应的第 一业务SQL语句作为第二业务SQL语句;
[0010] 获取每个所述第二业务SQL语句在所述当前采集周期之前的第二设定个数的选 定采集周期内的总执行时间和总执行次数;
[0011] 根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周 期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增长速 率;
[0012] 分别判断每个所述第二业务SQL语句的平均执行时间的增长速率是否大于第一 设定阈值,判定平均执行时间的增长速率大于所述第一设定阈值的第二业务SQL语句为异 常SQL语句。
[0013] 具体的,获取每个第一业务SQL语句在当前采集周期内的总执行时间和总执行次 数,具体包括:
[0014] 持续采集每个所述第一业务SQL语句的执行时间和执行次数;
[0015] 将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行时间、减 去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行时 间,得到对应第一业务SQL语句在所述当前采集周期内的总执行时间;以及
[0016] 将在所述当前采集周期到期后采集的每个所述第一业务SQL语句的执行次数、减 去在所述当前采集周期的前一个采集周期到期后采集的对应第一业务SQL语句的执行次 数,得到对应第一业务SQL语句在所述当前采集周期内的总执行次数。
[0017] 具体的,根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定 采集周期内的总执行时间和总执行次数,计算对应第二业务SQL语句的平均执行时间的增 长速率,具体包括:
[0018] 根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周 期内的总执行时间和总执行次数,计算对应第二业务SQL语句在所述当前采集周期以及每 个所述选定采集周期内的平均执行时间;
[0019] 根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定采集周 期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率。
[0020] 具体的,根据每个所述第二业务SQL语句在所述当前采集周期以及每个所述选定 采集周期内的平均执行时间,计算对应第二业务SQL语句的平均执行时间的增长速率,具 体包括:
[0021] 针对每个所述第二业务SQL语句,执行:
[0022] 按照时间先后顺序对所述当前采集周期和每个所述选定采集周期进行编号,建立 编号与对应的平均执行时间的二元组;
[0023] 根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句的平均 执行时间y关于编号t的一元线性公式y=a+bt ;
[0024] 将b作为所述当前第二业务SQL语句的平均执行时间的增长速率。
[0025] 可选的,还包括:
[0026] 将平均执行时间的增长速率小于等于所述第一设定阈值的第二业务SQL语句作 为第三业务SQL语句;
[0027] 根据每个所述第三业务SQL语句的一元线性公式分别预测对应第三业务SQL语句 在所述当前采集周期的下一个采集周期内的平均执行时间;
[0028] 根据获取的每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期 内的总执行时间和总执行次数,计算对应第三业务SQL语句的实际的平均执行时间;
[0029] 计算每个所述第三业务SQL语句在所述当前采集周期的下一个采集周期内的实 际的平均执行时间与预测的平均执行时间的比值,比值大于第二设定阈值的第三业务SQL 为异常SQL语句。
[0030] 具体的,根据建立的二元组利用一元回归分析方法拟合出当前第二业务SQL语句 的平均执行时间y关于编号t的一元线性公式y=a+bt,具体包括:
[0031] 通过下列公式得到b和a :
【主权项】
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语句在所述当前采集周期的下一个采集周期内的实际的 平均执行时间与预测的平均执行时间的比值,比值大于第二设定阈值的第三
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1