一种统计性能指标记录的方法及装置 【技术领域】
本发明涉及通信技术领域,尤其涉及一种统计性能指标记录的方法及装置。
背景技术
在网管对网络进行管理的过程中,经常需要对指定小区进行性能指标记录的统计,根据统计结果生成指定小区的性能报表。目前,网管系统采用直接从所有的性能指标记录中统计指定小区的性能指标记录的方法进行性能指标记录的统计。
例如,统计2008-09-0105:00:00到2008-10-0105:00:00的时间范围内的n个指定小区的若干性能指标记录,则可以采用如下两个查询语句之一进行指定小区的性能指标记录统计:
第一个查询语句:
Select DN,sum(R002_256),sum(R002_257)......sum(R002_358)fromperf
where begin_time>to_date(′2008-09-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
and end_time<to_date(′2008-10-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
and(DN=‘小区1’
or DN=‘小区2’
or DN=‘小区3’
.....
or DN=‘小区n’)
group by DN
第二个查询语句:
Select DN,sum(R002_256),sum(R002_257)......sum(R002_358)fromperf
where begin_time>to_date(′2008-09-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
and end_time<to_date(′2008-10-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
and(DN in(‘小区1’,‘小区2’,‘小区3’.....‘小区n’))
group by DN
上述两种查询语句的实际执行效果是相同的,即对数据库中的每条性能指标记录分别进行检测,检测每条性能指标记录的记录时间是否满足查询的时间范围2008-09-0105:00:00到2008-10-0105:00:00;并且检测每条性能指标记录的DN(小区标识)是否与n个指定小区中的任意一个小区的DN匹配,即检测每条性能指标记录的小区标识是否落在n个指定的小区集合中。如果某条性能指标记录既满足时间范围且与指定小区的小区标识匹配,则判断该条数据满足查询条件。之后,将满足查询条件的性能指标记录按照所属小区进行分组并累计,从而统计出在查询的时间范围内,各个指定小区的所有性能指标记录。在查询语句的执行过程中,数据库系统是首先是对时间进行判断(例如判断begin_time>to_date(′2008-09-0105:00:00′,′yyyy-mm-ddhh24:mi:ss′)and end_time<to_date(′2008-10-0105:00:00′,′yyyy-mm-ddhh24:mi:ss′)),之后对于满足时间范围的记录再进行小区标识的比较,不满足时间范围的记录显然没有必要进行小区标识的比较了,因此下文若干地方用到:时间范围内的性能指标记录条数,这表示经过了时间比较之后匹配的记录条数,而不是数据库中总的记录条数。
但是,上述方法只适用于指定的小区数量比较少的情况,随着指定小区数量逐渐增多,检测每条性能指标记录的小区标识是否与指定小区的小区标识匹配的次数将急剧增加,对指定小区进行性能指标记录统计的速度将显著变慢。
例如,以某实验局的实测数据为例:数据库有满足时间范围的100万条性能指标记录,共有小区8000个,指定的小区数量为200个。
根据上述规模得到平均每个小区有性能指标记录125条(100万条记录/8000个小区=125条/小区),由于指定的小区数量为200个,则需要统计200个小区的性能指标记录。在统计过程中,需要判断这100万条记录中每条记录是否落在指定的小区集合中。也就是说每条记录的小区标识都需要和依次与‘小区1’、‘小区2’、‘小区3’。。。。。。进行比较,直到成功匹配或者到达最后一个小区(‘小区200’)。
因为平均每个小区有性能指标记录125条,需要统计200个小区的性能指标记录,所以可以认为有25000(125×200=25000)条性能指标记录的小区标识落在指定的小区集合中,有975000(记录总条数100万减去满足条件的25000条得到975000)条记录的小区标识没有落在指定的小区集合中。
对于小区标识没有落在指定的小区集合中的975000条性能指标记录,需要和200个指定小区的逐一进行比较,才能知道这些记录的小区标识与指定小区的小区标识不匹配,需要的比较次数为:975000×200=195,000,000次。对于小区标识落在指定的小区集合中的25000条记录,最好的情况下,第一次比较就成功匹配了,最坏的情况下,需要比较200次才能成功匹配,则以平均每条记录进行100次比较计算,需要比较的次数为:25000×100=2,500,000次。因此,共计需要197,500,000次比较(195,000,000+2,500,000=197,500,000)。如果设指定地小区个数为x,则小区标识与指定的小区匹配的性能指标记录为125*x,不匹配的性能指标记录为(1,000,000-125*x),不匹配的性能指标记录需要进行的比较次数为(1,000,000-125*x)*x,匹配的性能指标记录需要进行的比较次数为125*x*(x/2)。总的比较次数为:(1,000,000-125*x)*x+125*x*(x/2),整理得:-62.5x*x+1,000,000x。显然,当x≤8000时,随着x的增加,即随着指定的小区个数增加,进行小区标识匹配而产生的比较次数不断增加,随着比较次数的不断增加,指定小区的性能指标记录的统计速度也随之下降。
【发明内容】
本发明提供了一种统计性能指标记录的方法及装置,降低了统计指定小区的性能指标记录过程中由于进行小区标识匹配产生的时间。
本发明提供了一种统计性能指标记录的方法,包括以下步骤:
统计全部小区中每个小区的性能指标记录;
从全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果。
其中,还可以包括:
判断所述指定小区的数量是否大于设定的阈值;
若判断结果为是,则统计全部小区的性能指标记录;
从全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果;若判断结果为否,直接从所有的性能指标记录中统计所述指定小区的性能指标记录。
其中,判断所述指定小区的数量是否大于设定的阈值之前,还包括:
设置所述指定小区的数量阈值。
其中,所述设定所述指定小区的数量阈值包括:
根据如下公式计算得到指定小区的数量阈值:
c/2(1-b/a)x*x+(bc+bd/a-ac)x-bd=0,
其中,x为所述指定小区的数量阈值,a为总的小区数,b为时间范围内的性能指标记录条数,c为每次小区标识比较成本,d为每次累加成本。
另一方面,本发明提供了一种实现性能指标记录统计的装置,其特征在于,包括第一统计单元和查找单元:
第一统计单元,用于统计全部小区中每个小区的性能指标记录;
查找单元,用于从所述第一统计单元统计的全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果。
其中,还包括判断单元和第二统计单元:
所述判断单元,用于判断所述指定小区的数量是否大于设定的阈值;
所述第二统计单元,用于若所述判断单元的判断结果为否,直接从所有的性能指标记录中统计所述指定小区的性能指标记录;
所述第一统计单元,具体用于若所述判断单元的判断结果为是,统计全部小区的性能指标记录。
其中,还包括设置单元:
所述设置单元,用于设置所述指定小区的数量阈值;
所述判断单元,具体用于判断所述指定小区的数量是否大于所述设置单元设置的阈值。
其中,所述设置单元,具体用于根据如下公式计算得到指定小区的数量阈值:
c/2(1-b/a)x*x+(bc+bd/a-ac)x-bd=0,
其中,x为所述指定小区的数量阈值,a为总的小区数,b为时间范围内的性能指标记录条数,c为每次小区标识比较成本,d为每次累加成本。
与现有技术相比,本发明具有以下优点:
本发明首先统计全部小区中每个小区的性能指标记录,然后从全部小区的统计结果中查找指定小区的统计结果,减少了统计指定小区的性能指标记录过程中进行小区标识匹配的次数,降低了由于进行小区标识匹配产生的时间。并且,本发明还可以根据指定小区的数量的不同采用相应的性能指标记录统计方法,提高了对指定的小区进行性能指标记录统计的速度。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一个实施例中一种统计性能指标记录的方法流程图;
图2是本发明的另一个实施例中一种统计性能指标记录的方法流程图;
图3是本发明的再一个实施例中一种实现性能指标记录统计的装置结构图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一个实施例中提供了一种统计性能指标记录的方法,具体过程如图1所示,包括以下步骤:
步骤101,统计全部小区的性能指标记录。即将性能指标记录按照所属小区进行分组并累计。
可以采用如下的查询语句进行全部小区的性能指标记录统计:
Select DN,sum(R002_256),sum(R002_257)......sum(R002_358)fromperf
where begin_time>to_date(′2008-09-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
and end_time<to_date(′2008-10-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
group by DN
这个查询语句的where子句中没有DN in(‘小区1’,‘小区2’,‘小区3’。。。。。‘小区n’)。在这个过程中,不需要进行小区标识匹配的判断,即为了判断每条性能指标记录的小区标识是否落在指定的小区集合中而进行的比较次数为0。执行这个查询语句可以将数据库中的满足时间范围的所有性能指标记录按照小区进行分类并累计,统计出每个小区的所有满足时间范围的性能指标记录。还以某实验局的实测数据为例:数据库有满足时间范围的100万条性能指标记录,共有小区8000个,指定200个小区进行统计。则共会产生8000条统计结果,每个小区对应一条统计结果。显然,这8000条统计结果中包含指定的200个小区的统计结果。
步骤102,从全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果。
可以从全部小区的性能指标记录统计结果中查找(过滤)指定小区的性能指标记录统计结果,伪码如下所示:
for(每一条统计结果)
{
if((DN==′小区1′)or(DN==′小区2′)or.....(DN==′小区n′))
{
写入报表文件,即这条统计结果是用户需要的,属于用户指定小区
的统计数据。
}
else
{
//什么也不做,即过滤掉该条统计数据。
}
}
还以某实验局的实测数据为例:数据库有满足时间范围的100万条性能指标记录,共有小区8000个,指定200个小区进行统计。则需要从步骤101得到的8000条统计结果中查找出指定的200个小区的统计结果,即对8000条统计结果逐一进行小区标识匹配。
可以推算出,在8000条统计结果中,有200条统计结果的小区标识与指定的200个小区的小区标识匹配,其余7800条统计结果不匹配。需要的比较次数为:7800条不匹配的统计结果,每条统计结果都需要和指定的200个小区逐一比较,共比较7800×200=1,560,000次。200条匹配的统计结果,平均每条需要比较100次,共200×100=20,000次。所有比较次数为1,580,000次(1,560,000+20,000=1,580,000)。由于步骤101中,小区标识匹配产生的比较次数为0,因此步骤101和步骤102两个步骤的比较次数总和还是1,580,000次,比较次数是直接从所有的性能指标记录中统计指定小区的性能指标记录的方法的0.8%(1,580,000/197,500,000=0.8%),从而大大减少了进行小区标识匹配产生的比较次数,降低了统计性能指标记录过程中由于进行小区标识匹配产生的时间。
需要进一步说明的是,当指定的小区都是某个RAN下的小区时,可以先统计出该RAN下的全部小区的性能指标,再从该RAN下的全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果,具体方法只需要对步骤101中的查询语句稍作改动,即可实现。
本发明另一个实施例中提供了一种统计性能指标记录的方法,预先设定一个指定小区的数量阈值,当指定小区的数量小于或等于设定的阈值时,采用直接从所有的性能指标记录中统计指定小区的性能指标记录的方法;当指定小区的数量大于设定的阈值时,则首先统计全部小区的性能指标记录,然后从全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果。具体过程如图2所示,包括以下步骤:
步骤201,设定指定小区的数量阈值。
可以对两种不同的统计方法进行成本比较,从而获得指定小区的数量阈值。
忽略影响很小的成本,则对性能指标记录进行统计的总成本主要由3个因素决定:总成本=小区比较成本+累加成本+时间比较成本。其中,小区比较成本指进行小区标识匹配的成本。累加成本指使用SUM函数对性能指标记录进行累加的成本。时间比较成本指判断性能指标记录的记录时间是否在要求的时间范围内的成本。
若采用方法1,即直接从所有的性能指标记录中统计指定小区的性能指标记录的方法,具体的,可以使用现有技术中的查询语句直接从所有的性能指标记录中统计指定小区的性能指标记录。则
小区比较成本=[(总的小区数-指定的小区数)/总的小区数×时间范围内的性能指标记录条数×指定的小区数+指定的小区数/总的小区数×时间范围内的性能指标记录条数×指定的小区数/2]×每次小区标识比较成本。
累加成本=指定的小区数/总的小区数×时间范围内的性能指标记录条数×每次累加成本。
时间比较成本=所有性能指标记录条数×每次时间比较成本。
总成本=[(总的小区数-指定的小区数)/总的小区数×时间范围内的性能指标记录条数×指定的小区数+指定的小区数/总的小区数×时间范围内的记录条数×指定的小区数/2]×每次小区标识比较成本+指定的小区数/总的小区数×时间范围内的记录条数×每次累加成本+所有性能指标记录条数×每次时间比较成本。
若采用方法2,即采用首先统计全部小区的性能指标记录,然后从全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果的方法,则
小区比较成本=[(总的小区数-指定的小区数)×指定的小区数+指定的小区数×指定的小区数/2]×每次小区标识比较成本。从公式中可以发现方法2的小区比较成本比方法1的小区比较成本低,因为方法2中没有对所有的性能指标记录都进行小区标识的匹配,而是仅对全部小区的性能指标记录统计结果进行小区标识的匹配。
累加成本=时间范围内的性能指标记录条数×每次累加成本。从公式中可以发现方法2的累加成本比方法1的累加成本高,因为方法2对所有的性能指标记录都进行了累加,而方法1只是对匹配小区标识的性能指标记录进行累加。
时间比较成本=所有性能指标记录条数×每次时间比较成本。
总成本=[(总的小区数-指定的小区数)×指定的小区数+指定的小区数×指定的小区数/2]×每次小区标识比较成本+时间范围内的性能指标记录条数×每次累加成本+所有性能指标记录条数×每次时间比较成本。
对同一个统计对象而言,无论采用方法1还是方法2,总的小区数、所有性能指标记录条数、时间范围内的性能指标记录条数、每次小区标识比较成本、每次累加成本、全表扫描成本和每次时间比较成本都是确定的。通过对两种不同的统计方法进行成本比较,可以确定在指定的小区数量不同时,哪种方法的的总成本比较低,即采用哪种方法的统计速度较快。
可以采用如下的方式确定指定小区的数量阈值,
令:方法2的总成本=方法1的总成本
即今:[(总的小区数-指定的小区数)/总的小区数×时间范围内的性能指标记录条数×指定的小区数+指定的小区数/总的小区数×时间范围内的记录条数×指定的小区数/2]×每次小区标识比较成本+指定的小区数/总的小区数×时间范围内的记录条数×每次累加成本+所有性能指标记录条数×每次时间比较成本=[(总的小区数-指定的小区数)×指定的小区数+指定的小区数×指定的小区数/2]×每次小区标识比较成本+时间范围内的性能指标记录条数×每次累加成本+所有性能指标记录条数×每次时间比较成本
设a为总的小区数,b为时间范围内的性能指标记录条数,c为每次小区标识比较成本,d为每次累加成本。
则:
[(a-x)/a*b*x+x/a*b*x/2]*c+x/a*b*d=[(a-x)*x+x*x/2]*c+bd
整理得:
c/2(1-b/a)x*x+(bc+bd/a-ac)x-bd=0
对于一个数据库对象,其c、d都是比较固定的,a为数据库统计数据,b可以通过如下公式计算出来:
b=用户选择的时间范围/记录保存的时间长度*总记录条数
记录保存的时间长度是指记录保存了多长时间,例如,保存3个月,则数据库中总是有3个月内的时间,对3个月前的数据则已经删除了。
令用户选择的时间范围为t1,记录保存的时间长度为t,则
b=t1/t
例如,记录共保存7天,共7*24小时,用户选择了1天的时间,则b=1/7×总记录条数。
总记录条数是相对不变的。(因为实际应用时,每天会进行记录的插入和过时的记录的清除,因此总记录条数虽然会变化,但变化数量相对于总量来说,非常小,可以认为总记录条数基本不变,并且长期来说,总记录条数会维持在一个比较确定的数量上)
因此,可以根据用户选择的时间范围以及数据库的统计数据(包括a和t),计算出阈值。(数据库的统计数据可以通过程序自动统计出来,也可以采用配置文件预设置的方式)
还以某实验局的实测数据为例:数据库有满足时间范围的100万条性能指标记录,共有小区8000个,指定200个小区进行统计。根据一般的统计经验,可以将每次小区标识比较成本设为1,将每次累加成本设为5。
带入数据,得:(8000-x)*x+x*x/2+1,000,000*5=(8000-x)/8000*1,000,000*x+x/8000*1,000,000*x/2+x/8000*1,000,000*5
整理,得:62x*x-992625x+5,000,000=0
解得:x=5或者x=16005
因为小区的范围为:[0,8000],因此,可以得到:指定小区数量的阈值为5。
进一步计算可以得到,当x>5时,采用方法2的总成本较低,当x≤5时,采用方法1的总成本较低。
步骤202,判断指定小区的数量是否大于设定的阈值。若判断结果为否,转步骤203,若判断结果为是,转步骤204。
步骤203,直接从所有的性能指标记录中统计指定小区的性能指标记录。
具体的,可以使用现有技术中的查询语句直接从所有的性能指标记录中统计指定小区的性能指标记录。
步骤204,统计全部小区的性能指标记录。即将性能指标记录按照所属小区进行分类并累计。
可以采用如下的查询语句进行全部小区的性能指标记录统计:
Select DN,sum(R002_256),sum(R002_257)......sum(R002_358)fromperf
where begin_time>to_date(′2008-09-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
and end_time<to_date(′2008-10-0105:00:00′,′yyyy-mm-dd hh24:mi:ss′)
group by DN
这个查询语句的where子句中没有DN in(‘小区1’,‘小区2’,‘小区3’。。。。。‘小区n’)。在这个过程中,不需要进行小区标识匹配的判断,即为了判断每条性能指标记录的小区标识是否落在指定的小区集合中而进行的比较次数为0。执行这个查询语句可以将数据库中的满足时间范围的所有性能指标记录按照小区进行分类并累计,统计出每个小区的所有满足时间范围的性能指标记录。
步骤205,从全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果。
通过采用本实施例中提供的统计性能指标记录的方法,设定了指定小区的数量阈值,根据指定小区的数量与设定的阈值的关系采用相应的性能指标记录统计方法,提高了对指定小区进行性能指标记录统计的速度。
本发明的再一个实施例中提供了一种实现性能指标记录统计的装置,如图3所示,包括:
第一统计单元301,用于统计全部小区的性能指标记录;
查找单元302,用于从第一统计单元301统计的全部小区的性能指标记录统计结果中查找指定小区的性能指标记录统计结果。
其中,所述装置还可以包括判断单元303和第二统计单元304,
判断单元303,用于判断所述指定小区的数量是否大于设定的阈值;
第二统计单元304,用于若判断单元303的判断结果为否,直接从所有的性能指标记录中统计所述指定小区的性能指标记录;
第一统计单元301,具体用于若判断单元303的判断结果为是,统计全部小区的性能指标记录。
其中,所述装置还可以包括设置单元305,
设置单元305,用于设置所述指定小区的数量阈值;
判断单元303,具体用于判断所述指定小区的数量是否大于设置单元305设置的阈值。
其中,设置单元305具体用于根据如下公式计算得到指定小区的数量阈值:
c/2(1-b/a)x*x+(bc+bd/a-ac)x-bd=0,
其中,x为所述指定小区的数量阈值,a为总的小区数,b为时间范围内的性能指标记录条数,c为每次小区标识比较成本,d为每次累加成本。
本发明首先统计全部小区中每个小区的性能指标记录,然后从全部小区的统计结果中查找指定小区的统计结果,减少了统计指定小区的性能指标记录过程中进行小区标识匹配的次数,降低了由于进行小区标识匹配而产生的时间。并且,本发明还可以根据指定小区的数量的不同采用相应的性能指标记录统计方法,提高了对指定的小区进行性能指标记录统计的速度。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。