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 進行壓測。以評估 PostgreSQL 與 Oracle 在處理複雜 SQL 上的效能差距。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30088583/viewspace-1391275/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle replayc測試Oracle
- postgresql無序uuid效能測試SQLUI
- postgresql:pgbench基準效能測試SQL
- ORACLE壓力測試Oracle
- Oracle TDE加密測試Oracle加密
- PostgreSQL:資料庫連結測試SQL資料庫
- Kunlun-Storage vs PostgreSQL OLTP 測試SQL
- PostgreSQL TPROC-C基準測試:PostgreSQL 12與PostgreSQL 13效能對比SQL
- Oracle RAC序列效能測試Oracle
- Oracle RMAN恢復測試Oracle
- Oracle logmnr簡單測試Oracle
- Oracle sqlldr工具功能測試OracleSQL
- Airflow vs. Luigi vs. Argo vs. MLFlow vs. KubeFlowAIUIGo
- Oracle 11gRac 測試案例(三)系統測試Oracle
- Oracle 11gRac 測試案例(五)ASM功能測試OracleASM
- Spring Boot中用嵌入式PostgreSQL測試Spring BootSQL
- Oracle vs PostgreSQL DBA(21)- Oracle VPDOracleSQL
- Oracle JDBC ResultSet引數測試OracleJDBC
- oracle壓力測試之orastress!OracleAST
- Oracle rman duplicate遷移測試Oracle
- Oracle 11gRac 測試案例(二)系統測試(一)Oracle
- 使用sysbench測試mysql及postgresql(完整版)MySql
- HashSet vs. TreeSet vs. LinkedHashSet
- oracle壓力測試之orabm(二)Oracle
- 使用profiler測試Oracle PL/SQL效能OracleSQL
- oracle壓力測試之orabm(三)Oracle
- Oracle 閃回資料庫測試Oracle資料庫
- oracle壓力測試之orabm(一)Oracle
- oracle測試資料庫啟用Oracle資料庫
- oracle鎖級別相關測試Oracle
- Oracle vs PostgreSQL DBA(22)- Oracle VPD#2OracleSQL
- postgresql 9.6 分割槽表測試方案與記錄SQL
- 2.5.4. 測試Oracle net——2.5.4.3. 測試網路服務名Oracle
- Oracle vs PostgreSQL Develop(17) - ARRAYOracleSQLdev
- Oracle vs PostgreSQL Develop(15) - DISTINCT ONOracleSQLdev
- Oracle vs PostgreSQL Develop(18) - BooleanOracleSQLdevBoolean
- PostgreSQL/Oracle 時間改成秒SQLOracle
- Oracle start with connect by PostgreSQL recursive cteOracleSQL
- Oracle 12C Sharding部署和測試Oracle