PostgreSQL vs. Oracle 测试

PG vs. Oracle Sysbench 0.5 测试

 

一、目的

    此次测试的目的,仅作为Oracle向PostgreSQL迁移的广义性能对比参考,应用针对性测试后续跟进。

 

二、测试

    

    测试工具统一采用Sysbench 0.5版本,此版本的一个亮点是测试模型使用lua脚本。用户可以根据自己的业务模型进行随意定制。比以往版本更加灵活,去除了以前业务模型单一的诟病。

另外测试人员还可以指定测试结果展示时间间隔;以前版本只能在测试结束后,查看压测结果数据。目前sysbench 0.5对Oracle支持不好。我自己编写了针对oracle数据库的lua脚本
但是多线程这块,需要自己编写脚本;num thread参数,对Oracle来讲作用不大,随着并行加大,tps并没有上升。

    PostgreSQL以及Oracle位于同一台数据库服务器;进行分开独立压测。

硬件配置如下:

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

内存:PG和oracle内存设置一样,均为10G。

存储:同为SSD存储

 

 

性能测试对比图如下。其中蓝色线条代表PG tps,红色线代表Oracle tps。64个并发下,同时达到tps最高点;Oracle最高tps为47K,PG为41K。

之后tps趋于稳定(但rt会增加,主要原因为超过系统最大并发能力后,sys switch 增加),这比之于没有使用thread pool的 MySQL有很大的优势。

如果MySQL没有使用thread pool,超过最高tps后,随着并发线程的增大,呈明显下降趋势。这也是为什么MySQL5.6增加thread pool 的主要原因。

 

 

三、总结

 

   1.性能:从以上测试来看,PG和Oracle在使用sysbench 默认自带业务模型时,Oracle性能比PG好10-18%左右。

   2.功能:因此次采用的模型为sysbench自带业务模型。此业务模型只是单表主健访问、索引列访问与更新;没有表关联,基本上为数据库最简单功能。但事务模型比较复杂,

     其中包含10个主健查询,4个范围以及带order by 查询,2个update,1个insert,1个delete。

     因此本次测试不具有有业务代表性,主要为:

     I.多表关联:使用Oracle数据库的应用,都比较传统。多表关联非常普遍。在处理表join method, join order等上面,oracle数据库在性能上比较有优势。

     II.嵌套SQL处理:Oracle数据库的应用,在分页上基本上是用嵌套来处理的。那就会出现一个SQL,既有嵌套又有关联的情况。此类属于复杂SQL。

 

   基于以上考虑,接下来的压测,需要将务模型整合到sysbench 0.5中,对复杂SQL进行压测。以评估PostgreSQLOracle在处理复杂SQL上的性能差距。

 

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值