发现低性能的sql语句以及预测sql语句性能的方法和装置的制造方法

文档序号:8498674阅读:729来源:国知局
发现低性能的sql语句以及预测sql语句性能的方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据库领域,尤其涉及一种发现低性能的SQL语句以及预测SQL语句性能的方法和装置。
【背景技术】
[0002]在例如银行运维系统的一些系统中,有时会发生超时等故障。这些故障的原因可能是一些用于查询的SQL语句性能较差。由于例如银行运维系统的一些系统中可能包含成千上万的SQL语句,找出其中性能较差的SQL语句变得很困难。
[0003]即使数据库的性能在一段时间是可以容忍的,但很可能随着数据库中数据的增多、业务的并发处理的增多,SQL语句执行得越来越慢,最终由于资源瓶颈而导致数据库崩溃。然而,预测在未来可能会性能变差、引起数据库崩溃的SQL语句更加困难。

【发明内容】

[0004]有鉴于此,本发明一个实施例的一个目的旨在提供一种高效地在数据库中发现低性能的SQL语句的方案。
[0005]另外,本发明另一实施例的另一目的旨在预测未来性能可能会变差的SQL语句。
[0006]根据本发明的一个实施例,提供了一种用于在数据库中发现低性能的SQL语句的方法,包括:跟踪SQL语句的执行成本和相关成本指标;基于跟踪到的SQL语句的执行成本和相关成本指标的历史数据,预测SQL语句的成本的动态阈值,以便基于SQL语句的在特定时刻执行成本和相应的预测出的成本的阈值,发现低性能的SQL语句。
[0007]在一种具体实现中,所述跟踪步骤包括:以固定时间间隔跟踪SQL语句的执行成本和相关成本指标。
[0008]在一种具体实现中,所述预测步骤包括:以固定时间间隔从跟踪到的SQL语句的执行成本和相关成本指标的历史数据中预测所述成本的动态阈值。
[0009]在一种具体实现中,所述方法还包括:响应于SQL语句的在特定时刻执行成本高于预测的在该特定时刻成本的阈值,判断该SQL语句在该特定时刻性能低。
[0010]根据本发明的另一实施例,提供了一种用于预测SQL语句的性能的方法,包括:跟踪SQL语句的性能指标和相关数据量、并发量;基于跟踪到的SQL语句的性能指标和相关数据量、并发量的历史数据,确定性能指标随数据量和并发量变化的趋势;响应于输入的数据量和并发量,基于该性能指标随数据量和并发量变化的趋势,输出在该数据量和并发量下的性能指标。
[0011]在一种具体实现中,所述性能指标是SQL语句的执行成本。
[0012]在一种具体实现中,所述跟踪步骤包括:以固定时间间隔跟踪SQL语句的性能指标和相关数据量、并发量。
[0013]在一种具体实现中,所述确定步骤包括:以固定时间间隔动态地从SQL语句的性能指标和相关数据量、并发量的历史数据中确定性能指标随数据量和并发量变化的趋势。
[0014]根据本发明的一个实施例,提供了一种用于在数据库中发现低性能的SQL语句的装置,包括:跟踪单元,被配置为跟踪SQL语句的执行成本和相关成本指标;预测单元,被配置为基于跟踪到的SQL语句的执行成本和相关成本指标的历史数据,预测SQL语句的成本的动态阈值,以便基于SQL语句的在特定时刻执行成本和相应的预测出的成本的阈值,发现低性能的SQL语句。
[0015]在一种具体实现中,所述跟踪单元被配置为以固定时间间隔跟踪SQL语句的执行成本和相关成本指标。
[0016]在一种具体实现中,所述预测单元被配置为以固定时间间隔从跟踪到的SQL语句的执行成本和相关成本指标的历史数据中预测所述成本的动态阈值。
[0017]在一种具体实现中,所述装置还包括:判断单元,被配置为响应于SQL语句的在特定时刻执行成本高于预测的在该特定时刻成本的阈值,判断该SQL语句在该特定时刻性能低。
[0018]根据本发明的另一实施例,提供了一种用于预测SQL语句的性能的装置,包括:跟踪单元,被配置为跟踪SQL语句的性能指标和相关数据量、并发量;确定单元,被配置为基于跟踪到的SQL语句的性能指标和相关数据量、并发量的历史数据,确定性能指标随数据量和并发量变化的趋势;输出单元,被配置为响应于输入的数据量和并发量,基于该性能指标随数据量和并发量变化的趋势,输出在该数据量和并发量下的性能指标。
[0019]在一种具体实现中,所述性能指标是SQL语句的执行成本。
[0020]在一种具体实现中,所述跟踪单元被配置为以固定时间间隔跟踪SQL语句的性能指标和相关数据量、并发量。
[0021]在一种具体实现中,所述确定单元被配置为以固定时间间隔动态地从SQL语句的性能指标和相关数据量、并发量的历史数据中确定性能指标随数据量和并发量变化的趋势。
[0022]由于本发明的实施例基于跟踪到的SQL语句的执行成本和相关成本指标的历史数据,预测SQL语句的成本的动态阈值,以便基于SQL语句的在特定时刻执行成本和相应的预测出的成本阈值,发现低性能的SQL语句,因此,它能够高效地发现低性能的SQL语句。
[0023]另外,由于本发明的另一实施例基于跟踪到的SQL语句的性能指标和相关数据量、并发量的历史数据,确定性能指标随数据量和并发量变化的趋势,并响应于输入的数据量和并发量,输出在该数据量和并发量下的性能指标,这样,就有可能预测在未来数据库中数据增多、业务的并发处理增多的情况下可能会性能变差、引起数据库查询系统崩溃的SQL语句。
【附图说明】
[0024]本发明的其它特点、特征、优点和益处通过以下结合附图的详细描述将变得更加显而易见。
[0025]图1示出了根据本发明一个实施例的发现低性能的SQL语句的方法的流程图。
[0026]图2示出了根据本发明一个实施例的包括动态跟踪的SQL语句执行成本曲线、和预测出的SQL语句的执行成本的动态阈值的曲线的界面。
[0027]图3示出了根据本发明另一实施例的用于预测SQL语句的性能的方法的流程图。
[0028]图4示出了根据本发明另一实施例的显示了 SQL语句执行成本随数据量和并发量变化趋势、以及从输入的数据量和并发量预测在该数据量和并发量下的执行成本的界面。
[0029]图5示出了根据本发明一个实施例的发现低性能的SQL语句的装置的框图。
[0030]图6示出了根据本发明另一实施例的用于预测SQL语句的性能的装置的框图。
[0031]图7示出了根据本发明一个实施例的发现低性能的SQL语句的设备的框图。
[0032]图8示出了根据本发明另一实施例的用于预测SQL语句的性能的设备的框图。
【具体实施方式】
[0033]下面,将结合附图详细描述本发明的各个实施例。
[0034]图1所示的方法能够用来发现低性能的SQL语句。
[0035]执行成本是SQL语句以单块读时间为单位表示的总执行时间。它能够从数据库的快照中通过现有技术的方法得出。它是最能够体现SQL语句的性能是否良好的一个指标。但是,孤立地判断执行成本没有意义。同样的一个执行成本,在有些情况下可能是可以接受的,在有些情况下可能就变成不可接受的,因此要结合成本阈值来进行判断。本发明的实施例通过预测SQL语句的执行成本的动态的阈值,能够实时地用来发现低性能的SQL语句。
[0036]在步骤SlOl中,以固定时间间隔(例如I小时)跟踪SQL语句的执行成本和相关成本指标(执行成本和相关成本指标都可以从数据库的快照中得出)。成本指标是指与成本有关的用于动态建模的其它指标,例如数据量、并发量、CPU时间等指标。数据量包括数据库数据量,例如表大小或表行数。并发量可以是SQL语句对应的业务的并发量,例如交易量;也可以是数据库的并发量,例如下列中的一个或多个:活动会话数、数
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1