PostgreSQL、MsSQL、Oracle简单性能比较

由于版权关系,最近对PostgreSQL比较感兴趣,但网上有说PostgreSQL性能不高,所以自己做了个简单的比较。

公共环境:
1. CPU双核1.5,2G内存。
2. WindowsXP

软件版本:
MsSQLServer2000,PostgresSQL8.3.3 for Windows,Oracle817 for Windows都是默认配置。

测试表:
建立一个简单的表,只有一个可变长度字符串字段,并设置为主键。

访问接口:
1.Vs2008开发的Windows程序。
2.SqlServer使用System.Data.SqlClient访问。
3.PostgreSQL使用Npgsql2.0.1访问,一个开源的Ado.net实现。
4.Oracle使用System.Data.OracleClient。

Insert测试:
1.插入2万条随机Guid字符串,隐式事务,每插入一条后自动提交:
结果: SqlServer: 15s
       PostgreSQL:30s
       Oracle:    44s
2.插入2万条随机Guid字符串,显示事务,在所有插入完成后一次Commit:
结果:  SqlServer: 4s
        PostgreSQL:6s
        Oracle:    16s
CPU占用率都不高,差不多都10%左右。

Select测试:
上述表在10万行时,查找一条记录执行100次(每次sql语句不一样):
结果:SqlServer: 22ms
      PostgreSQL:50ms
      Oracle:    60ms

结论:
1. 根据上面的插入测试,性能顺序从高到低:SQLServer2000、PostgreSQL833、Oracle817。听说PostgreSQL在Linux上有更佳表现,以前PostgreSQL是没有原生Win版本的,只是8x开始才在Win上编译。
2. 一个没想到的问题是Oracle817为何表现这么差(最近项目用到,本机正好安装了这个版本),不会是需要调优?也许是Oracle817发行较早吧(1998年),但MsSQL2000也是2000年发布的呀,只有PostgreSQL8.33是2008年新版本。
2. PostgreSQL是免费的且支持大多数OS,具有企业数据库的所有特性,就我多年软件开发经验来看,从性能上讲,可以满足一大半项目需要,而无须购买商业数据库。这几天公司准备投标一个项目,询问Oracle数据库价格,标准版、企业版,并发数、cpu数,价格少说几万,多的几十万,其实就这个项目的数据量PostgreSQL足矣!
原文地址:https://www.cnblogs.com/81/p/1348896.html