CN103186603A - 确定sql语句对关键业务的性能的影响的方法、系统和设备 - Google Patents
确定sql语句对关键业务的性能的影响的方法、系统和设备 Download PDFInfo
- Publication number
- CN103186603A CN103186603A CN2011104554934A CN201110455493A CN103186603A CN 103186603 A CN103186603 A CN 103186603A CN 2011104554934 A CN2011104554934 A CN 2011104554934A CN 201110455493 A CN201110455493 A CN 201110455493A CN 103186603 A CN103186603 A CN 103186603A
- Authority
- CN
- China
- Prior art keywords
- sql
- sql statement
- information
- response time
- critical field
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004519 manufacturing process Methods 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims description 136
- 230000000694 effects Effects 0.000 claims description 39
- 238000004458 analytical method Methods 0.000 claims description 18
- 230000002411 adverse Effects 0.000 claims description 14
- 230000003203 everyday effect Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000008447 perception Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Images
Abstract
本发明提供了一种确定SQL语句对关键业务的性能的影响的方法、系统和设备。其中的方法包括:对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,确定并更新所述SQL语句执行信息的标准范围值;从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息;将所采集的SQL语句执行信息与所述SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响。应用本发明可以确定关键业务所对应的SQL语句的执行是否影响关键业务的性能。
Description
技术领域
本发明涉及数据库处理技术领域,尤其涉及一种确定SQL语句对关键业务的性能的影响的方法、系统和设备。
背景技术
在现有的数据库系统中,一般都是使用结构化查询语言(SQL)语句进行相应的数据查询,从而完成相应的业务。对于一些比较敏感的业务而言,如果所执行的SQL语句的执行效率低下、响应时间过长,则可能导致数据库的性能下降,从而无法满足业务处理能力要求,造成业务服务阻塞,使得终端用户具有明显的感知或业务感知。因此,可将这类敏感的业务称之为关键业务。
为了提高关键业务的性能,在关键业务的SQL语句实际执行之前,可以对该SQL语句进行检测,分析该SQL语句的执行计划,以判断该SQL语句是否会对关键业务的性能造成不利的影响。但是,由于对关键业务的性能造成不利影响的因素比较多,所以一般比较难以判断某个SQL语句是否对关键业务的性能造成了不利影响。例如:
1)关键业务的SQL语句的响应时间即使发生微秒级的变化,也有可能对关键业务产生不利影响或阻塞业务,但此时从数据库层面上却很可能难以发现性能异常。譬如:当关键业务的SQL语句的响应时间由1秒变成2秒时,从数据库层面一般并不能发现性能异常;然而,由于该SQL语句的响应时间增加了1秒,因此很可能对关键业务的性能造成了不利影响。
2)SQL语句执行计划的错误也将会使得该进程消耗大量CPU的计算资源、内存的存储空间或IO,导致数据库的响应时间较长,前台查询速度比较缓慢,从而对关键业务的性能造成了不利影响。
3)数据库中存在的大量行锁也可能影响关键业务SQL语句所操作的对象,从而可能使得数据库的整体响应时间过长,从而对关键业务的性能造成了不利影响。
为了解决关键业务性能影响的判断问题,目前主要是采用如下方式:
1、由于目前没有比较直观的方法去分析和判断影响关键业务性能的各种因素,因此只能通过业务感知或业务影响来反映关键业务的性能。
2、数据库管理员(DBA)可使用数据库性能监控工具,确定占用大量资源或持有锁的会话(SESSION),抓取所确定的SESSION执行的SQL语句,并确认该SQL语句是否对关键业务的性能造成了不利影响。
但是,上述两种方式中还存在如下所述的问题:
1)当关键业务的性能受到影响时,往往都是在应用层出现业务受理缓慢等现象时,DBA才通过监控工具检查该数据库的性能,从数据库中抓取消耗资源的SQL语句,并与应用层确认该SQL语句是否属于该关键业务。整个处理过程时间过长,因此不能快速确定某个SQL语句是否属于关键业务,从而严重影响前台业务,造成故障时间过长。
2)当关键业务的性能受到影响时,DBA通常不能第一时间获知,往往都是由应用维护人员或开发人员发现业务感知或是业务处理受到影响,然后再报告给DBA。此时,数据库中已经有部分SQL语句大量消耗了系统资源或在等待锁,从而使得大面积的业务受到影响,因而不能有效、快速地发现关键业务的性能问题。
发明内容
有鉴于此,本发明提供了一种确定SQL语句对关键业务的性能的影响的方法、系统和设备,从而可确定关键业务所对应的SQL语句的执行是否影响关键业务的性能。
本发明采用的技术方案具体是这样实现的:
一种确定SQL语句对关键业务的性能的影响的方法,该方法包括:
A、对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,确定并更新所述SQL语句执行信息的标准范围值;
B、从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息;
C、将所采集的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语句执行信息与所接收到的SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响。
由上述技术方案可见,本发明中由于可先确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,然后将从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息与预先确定的SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响,从而可以有效地确定关键业务所对应的SQL语句的执行是否影响关键业务的性能。
附图说明
图1是本发明中确定SQL语句对关键业务的性能的影响的方法流程图。
图2为本发明中确定并更新所述SQL语句执行信息的标准范围值的方法流程图。
图3为本发明中更新所述SQL语句执行信息的标准范围值的方法流程图。
图4为本发明中确定SQL语句对关键业务的性能的影响的系统的结构示意图。
图5为本发明中关键业务定义装置的结构示意图。
图6为本发明中SQL执行计划装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1是本发明中确定SQL语句对关键业务的性能的影响的方法流程图。
如图1所示,该方法包括:
步骤101,对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,确定并更新所述SQL语句执行信息的标准范围值。
由于关键业务一般都多个业务模块组成,每个业务模块所对应的SQL语句也不尽相同。因此,在本发明的具体实施例中,可首先对关键业务进行分析,预先确定关键业务的各个业务模块所对应的SQL语句,然后再确定与所述SQL语句相对应的SQL语句执行信息。
在本发明的具体实施例中,所述SQL语句执行信息可以包括:SQL执行成本(COST)、SQL执行频率和SQL响应时间。
其中,所述SQL执行成本是对SQL语句在执行时所占用的资源的一种预计,例如,对执行SQL语句所需占用的CPU与IO等相关资源的估计;所述SQL执行频率是SQL语句的执行次数;所述SQL响应时间是指完成SQL语句的执行所需的时间。
在本步骤中,在确定了相应的SQL语句执行信息后,还将确定并更新所述SQL语句执行信息的标准范围值(即SQL语句执行信息在正常情况下的范围值)。其中,所述SQL语句执行信息的标准范围值可包括:SQL执行成本标准范围值、SQL执行频率标准范围值和SQL响应时间标准范围值。
在本发明的具体实施例中,所述确定并更新所述SQL语句执行信息的标准范围值包括:
确定所述SQL语句执行信息的标准范围值;并根据实时采集的与所述SQL语句执行信息相对应的SQL语句执行信息快照,更新所述SQL语句执行信息的标准范围值。
在本发明的具体实施例中,也可以通过多种方式来确定并更新所述SQL语句执行信息的标准范围值。以下将以其中的一种实现方式为例进行比较详细地介绍。
图2为本发明中确定并更新所述SQL语句执行信息的标准范围值的方法流程图。如图2所示,所述方法包括:
步骤201,预先设置并存储所述SQL语句执行信息的标准范围值的初始值;将所述SQL语句执行信息的标准范围值的初始值作为当前SQL语句执行信息的标准范围值。
具体来说,在本步骤中,首先可预先设置所述SQL语句执行信息的标准范围值的初始值,并将所述SQL语句执行信息的标准范围值的初始值存储在本地数据库中。此时,可将所述SQL语句执行信息的标准范围值的初始值作为当前SQL语句执行信息的标准范围值。
步骤202,在预定的采集周期内从生产数据库中实时采集并存储与所述SQL语句执行信息相对应的SQL语句执行信息快照。
在本发明的具体实施例中,所述采集周期的长度可以预先设置。例如,可将采集周期的长度设置为n天;其中,n为自然数,例如,n=7。在预定的采集周期中,还可设置m个采集时间点,分别对应于采集周期中的每一天中的m个确定的时间点。例如,采集周期中的第1个采集时间点,为采集周期中的每一天中的0点0分;第2个采集时间点,为采集周期中的每一天中的0点10分;第3个采集时间点,为采集周期中的每一天中的0点20分;......,依次类推。上述m的数值可以预先设置。此外,相邻采集时间点之间的时间间隔可以相同,也可以不相同。
在本步骤中,可在预定的采集周期内从生成数据库中实时采集并存储每个采集时间点上的与所述SQL语句执行信息相对应的SQL语句执行信息快照。其中,所述SQL语句执行信息快照为:一个确定时间点上的SQL语句执行信息。在本发明的具体实施例中,所述SQL语句执行信息快照可以包括:一个确定时间点上的SQL执行成本、SQL执行频率和SQL响应时间。
步骤203,在采集周期结束时,根据当前SQL语句执行信息的标准范围值和在该采集周期内所采集到的SQL语句执行信息快照,更新所述当前SQL语句执行信息的标准范围值。
在本发明的具体实施例中,可以通过多种实现方式来实现上述的步骤203。以下将以其中的一种实现方式为例进行比较详细地介绍。
图3为本发明中更新所述SQL语句执行信息的标准范围值的方法流程图。如图3所示,所述方法包括:
步骤301,在采集周期结束时,计算各个采集时间点的SQL平均响应时间。
由于一个采集周期为n天,且一个采集周期内有m个采集时间点,因此,一共将采集到(m×n)个SQL语句执行信息快照;其中,对于每一个采集时间点,都有n个采集到的SQL语句执行信息快照,每个SQL语句执行信息快照中都有一个SQL响应时间,因此,可以根据上述采集到的SQL语句执行信息快照,确定各个采集时间点的SQL平均响应时间。
举例来说,所述计算各个采集时间点的SQL平均响应时间包括:
对在同一个采集时间点上采集到的各个SQL语句执行信息快照中的SQL响应时间计算算术平均值,将所述算术平均值作为该采集时间点的SQL平均响应时间。
例如,对于每一个采集时间点,都有n个采集到的SQL语句执行信息快照,因此,可以先计算所述n个采集到的SQL语句执行信息快照中的SQL响应时间的总和,再将该总和除以n,即可得到该采集时间点的SQL平均响应时间。
此外,在本发明的具体实施例中,在计算算术平均值之前,还可先去除在同一个采集时间点上所采集到的各个SQL语句执行信息快照中的SQL响应时间中数值最大的SQL响应时间和数值最小的SQL响应时间,从而排除特殊情况下的SQL响应时间,使所得到的SQL平均响应时间更接近于实际情况中的SQL响应时间。
步骤302,根据当前SQL语句执行信息的标准范围值以及各个采集时间点的SQL平均响应时间,将各个采集时间点分为闲时响应时间点和忙时响应时间点。
举例来说,当采集时间点的SQL平均响应时间位于当前的SQL语句执行信息的标准范围值中的SQL响应时间标准范围值之内时,则将该采集时间点定义为闲时响应时间点;
当采集时间点的SQL平均响应时间位于当前的SQL语句执行信息的标准范围值中的SQL响应时间标准范围值之外时,则将该采集时间点定义为忙时响应时间点。
其中,在本发明的具体实施例中,当完成第一次更新SQL响应时间标准范围值之前,所述当前SQL语句执行信息的标准范围值中的SQL响应时间标准范围值为SQL语句执行信息的标准范围值的初始值中的SQL响应时间标准范围值;当SQL响应时间标准范围值更新之后,所述当前SQL语句执行信息的标准范围值中的SQL响应时间标准范围值为更新后的SQL响应时间标准范围值。
步骤303,根据所有闲时响应时间点的SQL平均响应时间,确定闲时SQL标准响应时间范围值;根据所有忙时响应时间点的SQL平均响应时间,确定忙时SQL标准响应时间范围值。
举例来说,所述根据所有闲时响应时间点的SQL平均响应时间,确定闲时SQL标准响应时间范围值包括:
将所有闲时响应时间点的最小SQL平均响应时间作为闲时SQL标准响应时间范围值的最小值;将所有闲时响应时间点的最大SQL平均响应时间作为闲时SQL标准响应时间范围值的最大值。
所述根据所有忙时响应时间点的SQL平均响应时间,确定忙时SQL标准响应时间范围值包括:
将所有忙时响应时间点的最小SQL平均响应时间作为忙时SQL标准响应时间范围值的最小值;将所有忙时响应时间点的最大SQL平均响应时间作为忙时SQL标准响应时间范围值的最大值。
步骤304,根据闲时SQL标准响应时间范围值和忙时SQL标准响应时间范围值,更新当前SQL响应时间标准范围值。
上述更新当前SQL响应时间标准范围值的方式可以有多种。举例来说,所述根据闲时SQL标准响应时间范围值和忙时SQL标准响应时间范围值,更新当前SQL响应时间标准范围值包括:
计算闲时SQL标准响应时间范围值的最小值与忙时SQL标准响应时间范围值的最小值的平均值,将该平均值作为更新后的当前SQL响应时间标准范围值的最小值;
计算闲时SQL标准响应时间范围值的最大值与忙时SQL标准响应时间范围值的最大值的平均值,将该平均值作为更新后的当前SQL响应时间标准范围值的最大值。
通过上述的步骤301~304,即可实现所述SQL语句执行信息的标准范围值的更新。
步骤102,从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息。
在本步骤中,可根据步骤101中所确定的关键业务的各个业务模块所对应的SQL语句,从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息。
进一步地,在采集所述SQL语句执行信息中的SQL执行成本时,可以不直接采集SQL执行成本,而是先采集SQL执行成本相关信息,再根据所采集的SQL执行成本相关信息计算SQL执行成本。
例如,所述SQL执行成本相关信息可以包括:
单块读的次数(记为SRds);多块读的次数(记作MRds);需要调用CPU的周期数(记作CPUCycles);单块读的时间(记作sreadtim);多块读的时间(记作mreadtim);CPU每秒的周期数(记作cpuspeed)。
此时,所述根据所采集的SQL执行成本相关信息计算SQL执行成本包括:通过如下所述公式计算SQL执行成本(记为SqlCost)。
SqlCost=
(SRds*sreadtim+MRds*mreadtim+CPUcycles/cpuspeed)/sreadtime.
此外,在本发明的具体实施例中,还可在开始从生产数据库中采集所述SQL语句执行信息时,启动一个预设时长(例如,30秒)的定时器。由于在正常情况下,采集操作将在预设时长内完成。因此,当定时器超时时,如果仍未采集到所需的SQL语句执行信息,将可认为所述生产数据库发生了异常或该生产数据库的性能很差,从而可发出相应的报警信息。
步骤103,将所采集的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语句是否影响关键业务的性能的系统之上。
图4为本发明中确定SQL语句对关键业务的性能的影响的系统的结构示意图。如图4所示,所述确定SQL语句对关键业务的性能的影响的系统400包括:关键业务定义装置401和SQL执行计划装置402。
其中,所述关键业务定义装置401,用于对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,确定并更新所述SQL语句执行信息的标准范围值;将所确定的SQL语句以及相应的SQL语句执行信息和所述SQL语句执行信息的标准范围值发送给所述SQL执行计划装置402;
所述SQL执行计划装置402,用于从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息;将所采集的SQL语句执行信息和所述SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响。
此外,在本发明的具体实施中,所述关键业务定义装置确定并更新所述SQL语句执行信息的标准范围值为:
所述关键业务定义装置,还可用于预先设置并存储所述SQL语句执行信息的标准范围值的初始值,将所述SQL语句执行信息的标准范围值的初始值作为当前SQL语句执行信息的标准范围值;在预定的采集周期内从生产数据库中实时采集并存储与所述SQL语句执行信息相对应的SQL语句执行信息快照;在采集周期结束时,根据当前SQL语句执行信息的标准范围值和在该采集周期内所采集到的SQL语句执行信息快照,更新所述当前SQL语句执行信息的标准范围值。
在本发明的具体实施例中,所述关键业务定义装置的结构组成可以是多种多样的,以下将以其中的一种结构组成为例进行说明。
图5为本发明中关键业务定义装置的结构示意图。如图5所示,所述关键业务定义装置500包括:关键业务定义模块501、关键业务性能采集模块502、关键业务分析模块503和本地数据库504。其中:
所述关键业务定义模块501,用于对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,将所确定的SQL语句以及相应的SQL语句执行信息发送给所述关键业务性能采集模块502和SQL执行计划装置;还用于预先设置所述SQL语句执行信息的标准范围值的初始值,将所述SQL语句执行信息的标准范围值的初始值作为当前SQL语句执行信息的标准范围值;将当前SQL语句执行信息的标准范围值发送给本地数据库504;
所述关键业务性能采集模块502,用于在预定的采集周期内从生产数据库中实时采集并存储与所述SQL语句执行信息相对应的SQL语句执行信息快照;将采集到的SQL语句执行信息快照发送给所述关键业务分析模块503;
所述关键业务分析模块503,用于在采集周期结束时,根据从本地数据库中获取的当前SQL语句执行信息的标准范围值和在该采集周期内所采集到的SQL语句执行信息快照,更新所述当前SQL语句执行信息的标准范围值,并将更新后的当前SQL语句执行信息的标准范围值发送给所述本地数据库和所述SQL执行计划装置;
所述本地数据库504,用于存储SQL语句执行信息的标准范围值的初始值,并存储所接收到的更新后的当前SQL语句执行信息的标准范围值。
在本发明的具体实施例中,所述SQL执行计划装置的结构组成也可以是多种多样的,以下将以其中的一种结构组成为例进行说明。
图6为本发明中SQL执行计划装置的结构示意图。如图6所示,所述SQL执行计划装置600包括:SQL语句采集模块601、SQL语句分析模块602和存储模块603。其中:
所述SQL语句采集模块601,用于接收SQL语句以及相应的SQL语句执行信息,并从生产数据库中实时采集与所接收的SQL语句相应的SQL语句执行信息,将所采集的SQL语句执行信息发送给所述存储模块603;
所述存储模块603,用于存储所采集的SQL语句执行信息,接收并存储SQL语句执行信息的标准范围值,将所述SQL语句执行信息的标准范围值和所采集的SQL语句执行信息发送给所述SQL语句分析模块602;
所述SQL语句分析模块602,用于将所接收到的SQL语句执行信息与所接收到的SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响。
综上所述,在本发明的技术方案中,由于可先确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,然后将从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息与预先确定的SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响,从而可以有效地确定关键业务所对应的SQL语句的执行是否影响关键业务的性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (21)
1.一种确定SQL语句对关键业务的性能的影响的方法,其特征在于,该方法包括:
A、对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,确定并更新所述SQL语句执行信息的标准范围值;
B、从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息;
C、将所采集的SQL语句执行信息与所述SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响。
2.根据权利要求1所述的方法,其特征在于,
所述SQL语句执行信息包括:SQL执行成本、SQL执行频率和SQL响应时间;
所述SQL语句执行信息的标准范围值包括:SQL执行成本标准范围值、SQL执行频率标准范围值和SQL响应时间标准范围值。
3.根据权利要求1所述的方法,其特征在于,所述步骤A中确定并更新所述SQL语句执行信息的标准范围值包括:
A1、预先设置并存储所述SQL语句执行信息的标准范围值的初始值;将所述SQL语句执行信息的标准范围值的初始值作为当前SQL语句执行信息的标准范围值;
A2、在预定的采集周期内从生产数据库中实时采集并存储与所述SQL语句执行信息相对应的SQL语句执行信息快照;
A3、在采集周期结束时,根据当前SQL语句执行信息的标准范围值和在该采集周期内所采集到的SQL语句执行信息快照,更新所述当前SQL语句执行信息的标准范围值。
4.根据权利要求3所述的方法,其特征在于:
所述预定的采集周期的长度为n天;其中,n为自然数;
在预定的采集周期中,还设置有m个采集时间点,分别对应于采集周期中的每一天中的m个确定的时间点。
5.根据权利要求4所述的方法,其特征在于:
所述SQL语句执行信息快照为:各个采集时间点上的SQL语句执行信息。
6.根据权利要求5所述的方法,其特征在于,所述步骤A3包括:
A31、在采集周期结束时,计算各个采集时间点的SQL平均响应时间;
A32、根据当前SQL语句执行信息的标准范围值以及各个采集时间点的SQL平均响应时间,将各个采集时间点分为闲时响应时间点和忙时响应时间点;
A33、根据所有闲时响应时间点的SQL平均响应时间,确定闲时SQL标准响应时间范围值;根据所有忙时响应时间点的SQL平均响应时间,确定忙时SQL标准响应时间范围值;
A34、根据闲时SQL标准响应时间范围值和忙时SQL标准响应时间范围值,更新当前SQL响应时间标准范围值。
7.根据权利要求6所述的方法,其特征在于,所述步骤A31包括:
对在同一个采集时间点上采集到的各个SQL语句执行信息快照中的SQL响应时间计算算术平均值,将所述算术平均值作为该采集时间点的SQL平均响应时间。
8.根据权利要求7所述的方法,其特征在于:
在计算所述算术平均值之前,去除在同一个采集时间点上所采集到的各个SQL语句执行信息快照中的SQL响应时间中数值最大的SQL响应时间和数值最小的SQL响应时间。
9.根据权利要求6所述的方法,其特征在于,所述步骤A32包括:
当采集时间点的SQL平均响应时间位于当前SQL语句执行信息的标准范围值中的SQL响应时间标准范围值之内时,则将该采集时间点定义为闲时响应时间点;
当采集时间点的SQL平均响应时间位于当前SQL语句执行信息的标准范围值中的SQL响应时间标准范围值之外时,则将该采集时间点定义为忙时响应时间点。
10.根据权利要求6所述的方法,其特征在于,所述步骤A33中的所述确定闲时SQL标准响应时间范围值包括:
将所有闲时响应时间点的最小SQL平均响应时间作为闲时SQL标准响应时间范围值的最小值;将所有闲时响应时间点的最大SQL平均响应时间作为闲时SQL标准响应时间范围值的最大值。
11.根据权利要求6所述的方法,其特征在于,所述步骤A33中的所述根据所有忙时响应时间点的SQL平均响应时间,确定忙时SQL标准响应时间范围值包括:
将所有忙时响应时间点的最小SQL平均响应时间作为忙时SQL标准响应时间范围值的最小值;将所有忙时响应时间点的最大SQL平均响应时间作为忙时SQL标准响应时间范围值的最大值。
12.根据权利要求6所述的方法,其特征在于,所述步骤A34包括:
计算闲时SQL标准响应时间范围值的最小值与忙时SQL标准响应时间范围值的最小值的平均值,将该平均值作为更新后的当前SQL响应时间标准范围值的最小值;
计算闲时SQL标准响应时间范围值的最大值与忙时SQL标准响应时间范围值的最大值的平均值,将该平均值作为更新后的当前SQL响应时间标准范围值的最大值。
13.根据权利要求2所述的方法,其特征在于,所述步骤B中采集所述SQL语句执行信息中的SQL执行成本包括:
从生产数据库中实时采集SQL执行成本相关信息,根据所采集的SQL执行成本相关信息计算SQL执行成本;
所述SQL执行成本相关信息包括:
单块读的次数SRds;多块读的次数MRds;需要调用CPU的周期数CPUCycles;单块读的时间sreadtim;多块读的时间mreadtim;CPU每秒的周期数cpuspeed。
14.根据权利要求13所述的方法,其特征在于,计算所述SQL执行成本的公式为:
SqlCost=
(SRds*sreadtim+MRds*mreadtim+CPUcycles/cpuspeed)/sreadtime,
其中,所述SqlCost为SQL执行成本。
15.根据权利要求1所述的方法,其特征在于,所述步骤B中还进一步包括:
在开始从生产数据库中采集所述SQL语句执行信息时,启动一个预设时长的定时器;
当定时器超时时,如果仍未采集到所需的SQL语句执行信息,则发出报警信息。
16.根据权利要求1所述的方法,其特征在于,所述步骤C中的确定所述SQL语句对关键业务的性能的影响包括:
当SQL语句执行信息中的SQL响应时间位于所述SQL语句执行信息的标准范围值中的SQL响应时间标准范围值之外时,则判断所述SQL语句对关键业务的性能造成不利影响。
17.根据权利要求1所述的方法,其特征在于,所述步骤C中的确定所述SQL语句对关键业务的性能的影响包括:
当SQL语句执行信息中的SQL响应时间位于所述SQL语句执行信息的标准范围值中的SQL响应时间标准范围值之内时,判断SQL语句执行信息中的SQL执行成本是否位于所述SQL语句执行信息的标准范围值中的SQL执行成本标准范围值之内;如果是,则判断所述SQL语句未对关键业务的性能造成不利影响;否则,发出告警信息。
18.一种确定SQL语句对关键业务的性能的影响的系统,其特征在于,该系统包括:关键业务定义装置和SQL执行计划装置;
所述关键业务定义装置,用于对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,确定并更新所述SQL语句执行信息的标准范围值;将所确定的SQL语句以及相应的SQL语句执行信息和所述SQL语句执行信息的标准范围值发送给所述SQL执行计划装置;
所述SQL执行计划装置,用于从生产数据库中实时采集与所确定的SQL语句相应的SQL语句执行信息;将所采集的SQL语句执行信息和所述SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响。
19.根据权利要求18所述的系统,其特征在于,所述关键业务定义装置确定并更新所述SQL语句执行信息的标准范围值为:
所述关键业务定义装置,用于预先设置并存储所述SQL语句执行信息的标准范围值的初始值,将所述SQL语句执行信息的标准范围值的初始值作为当前SQL语句执行信息的标准范围值;在预定的采集周期内从生产数据库中实时采集并存储与所述SQL语句执行信息相对应的SQL语句执行信息快照;在采集周期结束时,根据当前SQL语句执行信息的标准范围值和在该采集周期内所采集到的SQL语句执行信息快照,更新所述当前SQL语句执行信息的标准范围值。
20.一种关键业务定义装置,其特征在于,所述关键业务定义装置包括:关键业务定义模块、关键业务性能采集模块、关键业务分析模块和本地数据库;
所述关键业务定义模块,对关键业务进行分析,确定关键业务的各个业务模块所对应的SQL语句以及相应的SQL语句执行信息,将所确定的SQL语句以及相应的SQL语句执行信息发送给所述关键业务性能采集模块和SQL执行计划装置;还用于预先设置所述SQL语句执行信息的标准范围值的初始值,将所述SQL语句执行信息的标准范围值的初始值作为当前SQL语句执行信息的标准范围值;将当前SQL语句执行信息的标准范围值发送给本地数据库;
所述关键业务性能采集模块,用于在预定的采集周期内从生产数据库中实时采集并存储与所述SQL语句执行信息相对应的SQL语句执行信息快照;将采集到的SQL语句执行信息快照发送给所述关键业务分析模块;
所述关键业务分析模块,用于在采集周期结束时,根据从本地数据库中获取的当前SQL语句执行信息的标准范围值和在该采集周期内所采集到的SQL语句执行信息快照,更新所述当前SQL语句执行信息的标准范围值,并将更新后的当前SQL语句执行信息的标准范围值发送给所述本地数据库和所述SQL执行计划装置;
所述本地数据库,用于存储SQL语句执行信息的标准范围值的初始值,并存储所接收到的更新后的当前SQL语句执行信息的标准范围值。
21.一种SQL执行计划装置,其特征在于,所述SQL执行计划装置包括:SQL语句采集模块、SQL语句分析模块和存储模块;
所述SQL语句采集模块,用于接收SQL语句以及相应的SQL语句执行信息,并从生产数据库中实时采集与所接收的SQL语句相应的SQL语句执行信息,将所采集的SQL语句执行信息发送给所述存储模块;
所述存储模块,用于存储所采集的SQL语句执行信息和SQL语句执行信息的标准范围值,将所采集的SQL语句执行信息和SQL语句执行信息的标准范围值发送给所述SQL语句分析模块;
所述SQL语句分析模块,用于将所接收到的SQL语句执行信息与所接收到的SQL语句执行信息的标准范围值进行比对,确定所述SQL语句对关键业务的性能的影响。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110455493.4A CN103186603B (zh) | 2011-12-29 | 2011-12-29 | 确定sql语句对关键业务的性能的影响的方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110455493.4A CN103186603B (zh) | 2011-12-29 | 2011-12-29 | 确定sql语句对关键业务的性能的影响的方法、系统和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103186603A true CN103186603A (zh) | 2013-07-03 |
CN103186603B CN103186603B (zh) | 2016-04-27 |
Family
ID=48677772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110455493.4A Active CN103186603B (zh) | 2011-12-29 | 2011-12-29 | 确定sql语句对关键业务的性能的影响的方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103186603B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778185A (zh) * | 2014-01-15 | 2015-07-15 | 中国移动通信集团北京有限公司 | 异常结构化查询语言sql语句确定方法及服务器 |
CN104820663A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 发现低性能的sql语句以及预测sql语句性能的方法和装置 |
CN104820630A (zh) * | 2015-05-22 | 2015-08-05 | 上海新炬网络信息技术有限公司 | 基于业务变化量的系统资源监控装置 |
CN104834634A (zh) * | 2014-02-07 | 2015-08-12 | 西门子公司 | 基于回归的用于sql语句性能预测的成本建模方法和装置 |
CN104965861A (zh) * | 2015-06-03 | 2015-10-07 | 上海新炬网络信息技术有限公司 | 一种数据访问监控装置 |
CN105955865A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种针对k-db数据库的监控方法及系统 |
CN106126409A (zh) * | 2016-07-01 | 2016-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种实时监控oracle单块读延迟的方法及装置 |
CN106372135A (zh) * | 2016-08-26 | 2017-02-01 | 深圳市卓讯信息技术有限公司 | 一种结构化查询语言sql执行效率跟踪方法及装置 |
CN110019298A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 数据处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070239719A1 (en) * | 2003-12-04 | 2007-10-11 | International Business Machines Corporation | High performance support for xa protocols in a clustered shared database |
CN101059810A (zh) * | 2007-03-16 | 2007-10-24 | 华为技术有限公司 | 一种实现数据库系统自动优化的系统和方法 |
US20080021893A1 (en) * | 2000-02-28 | 2008-01-24 | Reuven Bakalash | Method of servicing query statements from a client machine using a database management system (DBMS) employing a relational datastore and a multi-dimensional database (MDDB) |
CN101867494A (zh) * | 2010-06-18 | 2010-10-20 | 北京神州泰岳软件股份有限公司 | 基于监控模板的软硬件性能监控方法及系统 |
CN101989283A (zh) * | 2009-08-04 | 2011-03-23 | 中兴通讯股份有限公司 | 一种数据库性能的监控方法和装置 |
-
2011
- 2011-12-29 CN CN201110455493.4A patent/CN103186603B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080021893A1 (en) * | 2000-02-28 | 2008-01-24 | Reuven Bakalash | Method of servicing query statements from a client machine using a database management system (DBMS) employing a relational datastore and a multi-dimensional database (MDDB) |
US20070239719A1 (en) * | 2003-12-04 | 2007-10-11 | International Business Machines Corporation | High performance support for xa protocols in a clustered shared database |
CN101059810A (zh) * | 2007-03-16 | 2007-10-24 | 华为技术有限公司 | 一种实现数据库系统自动优化的系统和方法 |
CN101989283A (zh) * | 2009-08-04 | 2011-03-23 | 中兴通讯股份有限公司 | 一种数据库性能的监控方法和装置 |
CN101867494A (zh) * | 2010-06-18 | 2010-10-20 | 北京神州泰岳软件股份有限公司 | 基于监控模板的软硬件性能监控方法及系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778185A (zh) * | 2014-01-15 | 2015-07-15 | 中国移动通信集团北京有限公司 | 异常结构化查询语言sql语句确定方法及服务器 |
CN104778185B (zh) * | 2014-01-15 | 2018-01-30 | 中国移动通信集团北京有限公司 | 异常结构化查询语言sql语句确定方法及服务器 |
CN104820663A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 发现低性能的sql语句以及预测sql语句性能的方法和装置 |
CN104834634A (zh) * | 2014-02-07 | 2015-08-12 | 西门子公司 | 基于回归的用于sql语句性能预测的成本建模方法和装置 |
CN104820630A (zh) * | 2015-05-22 | 2015-08-05 | 上海新炬网络信息技术有限公司 | 基于业务变化量的系统资源监控装置 |
CN104965861A (zh) * | 2015-06-03 | 2015-10-07 | 上海新炬网络信息技术有限公司 | 一种数据访问监控装置 |
CN104965861B (zh) * | 2015-06-03 | 2018-06-22 | 上海新炬网络信息技术股份有限公司 | 一种数据访问监控装置 |
CN105955865A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种针对k-db数据库的监控方法及系统 |
CN106126409A (zh) * | 2016-07-01 | 2016-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种实时监控oracle单块读延迟的方法及装置 |
CN106126409B (zh) * | 2016-07-01 | 2018-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种实时监控oracle单块读延迟的方法及装置 |
CN106372135A (zh) * | 2016-08-26 | 2017-02-01 | 深圳市卓讯信息技术有限公司 | 一种结构化查询语言sql执行效率跟踪方法及装置 |
CN110019298A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103186603B (zh) | 2016-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103186603A (zh) | 确定sql语句对关键业务的性能的影响的方法、系统和设备 | |
CN106651633B (zh) | 一种基于大数据技术的用电信息采集系统及其采集方法 | |
CN105323111B (zh) | 一种运维自动化系统及方法 | |
CN105608758B (zh) | 一种基于算法组态和分布式流计算的大数据分析平台装置及方法 | |
CN105843904B (zh) | 针对数据库运行性能的监控告警系统 | |
CN102081622B (zh) | 评估系统健康度的方法及系统健康度评估装置 | |
CN105608144B (zh) | 一种基于多层模型迭代的大数据分析平台装置及方法 | |
CN104966172A (zh) | 一种用于企业经营数据分析的大数据可视化分析处理系统 | |
CN106293941B (zh) | 一种数据库系统资源的分配方法 | |
CN101290668B (zh) | 一种分时作业动态调度方法和装置 | |
US20160048415A1 (en) | Systems and Methods for Auto-Scaling a Big Data System | |
CN107247651B (zh) | 云计算平台监测预警方法和系统 | |
CN106202444A (zh) | 一种数据库运维监控的实现方法 | |
CN102831012A (zh) | 多节点分布式系统中的任务调度装置和任务调度方法 | |
CN114443435A (zh) | 一种面向容器微服务的性能监控告警方法及告警系统 | |
CN108268546B (zh) | 一种优化数据库的方法及装置 | |
CN104917639A (zh) | 基于集群监控分配数据业务方法及装置 | |
CN108763093A (zh) | 一种自动化测试方法和系统 | |
CN104778185A (zh) | 异常结构化查询语言sql语句确定方法及服务器 | |
CN104917836A (zh) | 基于集群监控分析计算设备可用性的方法及装置 | |
CN106325984A (zh) | 一种大数据任务调度装置 | |
CN103793309A (zh) | 一种批量业务预警方法及装置 | |
CN104809070B (zh) | 基于数据库交易类中间件的性能分析方法 | |
CN108920098A (zh) | 一种存储管理系统收集信息的方法、系统及设备 | |
CN104155130A (zh) | 一种小卫星综合测试智能判读系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231212 Address after: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000 Patentee after: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd. Patentee after: China Mobile (Zhejiang) Innovation Research Institute Co.,Ltd. Address before: Room 1609, No. 288 Huancheng North Road, Hangzhou City, Zhejiang Province, 310006 Patentee before: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd. |
|
TR01 | Transfer of patent right |