PostgreSQL vs. Oracle DML 獨立壓測

jesselyu發表於2015-01-06

一、壓測目的

      前面使用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取值離散後,應該也會有效能上提升。

clip_image001

2.Update 不帶索引列

Update不帶索引列時,Oracle效能比PG要好,Oracle最高能達到42K tps,PG在36K左右。達到高點後,兩都均表現非常穩定。

clip_image002

3.Update 帶索引列

Update帶索引列時,PG比Oracle稍好,PG最高在42.5K,Oracle達到40K tps。

clip_image003

4.Delete

delete操作時,Oracle的效能也比PG要好。Oracle能達到73.3K,而PG在65.4K左右。

clip_image004

三、壓測總結

以上各種測試,IO完全沒有問題,到最後,基本上是Oracle和PG在記憶體結構與演算法上的比較。到達高點後,CPU使用均在100%左右;而後隨著連線併發數增大,CPU sys不斷提升。這在預期之內,

因併發數增大後,CPU switch 增加。另外,達到高點後,Oracle和PG效能表現都非常穩定。下次將對複雜SQL,如巢狀查詢,表關聯等進行壓測。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30088583/viewspace-1392455/,如需轉載,請註明出處,否則將追究法律責任。

相關文章