一、压测目的

      前面使用Sysbench 默认事务模型,已经对PG和Oracle进行了压测,在性能上没有明显的区分度。

为了更细粒度了解PG和oracle分别在insert,update,delete上的区别,特进行此次压测。另外也是为了Oracle向PG迁移时,提供基本性能数据支持。

二、压测结果

此次压测,PG和Oracle位于相同主机上,压测时分别独立进行。

    PG版本:Portions Copyright (c) 2004-2013, EnterpriseDB Corporation  9.3AS

    Oracle版本:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

硬件配置如下:

    CPU:Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz,12 cores,24lcpu

    内存:PG shared_buffer 为20G,其它默认; Oracle SGA 20G,PGA 2G,Shared pool 2G,其它默认

    硬盘:同为SSD存储,INTEL SSDSC2BB480G4 447G,8个盘做了Raid 5

压测详细结果如下:

1.Insert

单独insert压测,PG比Oracle的性能要好。PG可以达到33.8K tps,而Oracle只能达到23.5K左右。Oracle主要等待在"buffer busy wait"和“enq:TX-index contention"上。

原因是:ID采用sequence取值,为了性能,已经加cache 2000。但是索引树右侧扩展时,”9-1“分裂为主要性能影响点。另外ID取值离散后,应该也会有性能上提升。

PostgreSQL vs. Oracle DML 独立压测

2.Update不带索引列

Update不带索引列时,Oracle性能比PG要好,Oracle最高能达到42K tps,PG在36K左右。达到高点后,两都均表现非常稳定。

PostgreSQL vs. Oracle DML 独立压测

3.Update带索引列

Update带索引列时,PG比Oracle稍好,PG最高在42.5K,Oracle达到40K tps。

PostgreSQL vs. Oracle DML 独立压测

4.Delete

delete操作时,Oracle的性能也比PG要好。Oracle能达到73.3K,而PG在65.4K左右。

PostgreSQL vs. Oracle DML 独立压测

三、压测总结

以上各种测试,IO完全没有问题,到最后,基本上是Oracle和PG在内存结构与算法上的比较。到达高点后,CPU使用均在100%左右;而后随着连接并发数增大,CPU sys不断提升。这在预期之内,

因并发数增大后,CPU switch 增加。另外,达到高点后,Oracle和PG性能表现都非常稳定。下次将对复杂SQL,如嵌套查询,表关联等进行压测。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30088583/viewspace-1392455/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30088583/viewspace-1392455/

相关文章: