(五)效果测试
Sybase IQ 与一般的关系型数据库的性能对比测试结果(主机CPU XEON 3G ,内存1G的NT服务器,IDE硬盘)
1.
单表总记录查询 (select count(*) from inet_p_mscadest)
| 表的总记录数
| 查询时间
| 一般的关系型数据库
| 11976193
| 56.25s
| IQ
| 26928865
| 16ms(时间基本恒定)
|
2.
单表有条件的记录总数查询(select count(*) from
INET_P_MSCADEST where collecttime between to_date('2005-1-1','yyyy-mm-dd') and to_date('2005-2-1','yyyy-mm-dd'))
| 查询出的总记录数
| 查询时间
| 一般的关系型数据库
| 2977
| 54.844s
| IQ
| 8929
| 16 ms
|
3.
单表记录有条件全部字段查询(select * from INET_P_MSCADEST where
collecttime between to_date('2005-1-1','yyyy-mm-dd') and to_date('2005-2-1','yyyy-mm-dd') )
| 查询出的总记录数
| 查询时间
| 一般的关系型数据库
| 2977
| 43.953s, 44.031s,47.203s
| IQ
| 8929
| 32ms
,16 ms
|
4.
插入单条记录(insert into INET_P_MSCADEST() values() )
| 总记录数
| 查询时间
| 一般的关系型数据库
| 1
| 31ms
| IQ
| 1
| 62ms
|
按天分组查询(select to_char(collecttime,'yyyy-mm-dd') time,sum(t.granularity) from
INET_P_MSCADEST t where
collecttime
between to_date('2005-1-1','yyyy-mm-dd') and
to_date('2005-2-1','yyyy-mm-dd')
group by to_char(collecttime,'yyyy-mm-dd'),serverid,amoid,mscid,descrip )
| 分组后的记录数
| 查询时间
| 一般的关系型数据库
| 2977
| 55.539s(6个月的数据量)
| IQ
| 8929
| 15ms (6个月的数据量)
|
5.
按月分组查询
| 分组后的记录数
| 查询时间
| 一般的关系型数据库
| 6
| 64.344s
| IQ
| 6
| 0.531s
|
6.
按年分组查询
| 分组后的记录数
| 查询时间
| 一般的关系型数据库
| 7
| 56.968s
| IQ
| 11
| 0.031s
|
结论:
1)简单对比之下,发现IQ在数据查询方面至少比一般的关系型数据库的数据查询快了几个数量级。直接使用原始数据汇总天数据的时间消耗在100ms内,完全可以即席查询汇总。
2)对比单条入库记录的时间,一般的关系型数据库虽然比IQ快了几倍,但如果采用IQ的Load方式入库数据的话,效率在6万条记录1秒钟左右。即使是对上面例子中的超大数据量也适合(在1个数据粒度5分钟内,记录数为1000*10=1万)。相对于一般的关系型数据库下的JDBC入库方式,1秒钟2000条的入库,效率快30倍。
3)IQ的查询汇总时间与表的总记录数关系不大。时间基本恒定。特别适合表的数据量超大的情况。
4)存储量比在一般的关系型数据库情况下缩减70%
5)QOS告警的即时性比原来的稍差。可能晚2-3分钟,极限情况下晚5分钟。这种一般情况下也是允许的。可以根据数据量适当调整QOS告警定时扫描周期。
[ 本帖最后由 jarjar 于 2007-11-6 09:38 编辑 ] |