第5回:ベンチマークテスト (1/2)

アーキテクチャ

今回はベンチマークによるパフォーマンス比較です。「データの登録」「データの検索」におけるパフォーマンスを計測し、その結果を元に考察していきます。

徹底比較!! Oracle & PostgreSQL

第5回:ベンチマークテスト

著者:ミラクル・リナックス  高橋 強   2005/01/31
1   2  次のページ
基本能力を比較してみる
   さて、これまではアーキテクチャや機能などについてOracleとPostgreSQLを比較してきました。今回からは、実環境でベンチマークを行い性能面での違いを検証してみます。


ページ内目次
基本能力を比較してみる
テスト環境
テスト(1) 〜データの登録〜
   ベンチマークというとすぐに結果の数値のみを見て判断してしまいがちですが、ある限られた環境下でのテスト結果に過ぎない、という事を忘れないで下さい。特にデータベースを用いたアプリケーションの場合、性能差はデータやアプリケーションに依存する割合が高く、サーバ側の性能のみで論じられるほど簡単ではない事がほとんどです。

   実際のところは、現実に即した環境下でアプリケーション、データを揃えた上でテストしなければそのシステムに対する比較データを得る事はできません。

   システムやアプリケーションによる総合的なテストは本来の環境で自ら確認していただくとして、ここではもっと単純な素の部分でOracleとPostgreSQLを比較してみたいと思います。


テスト環境

   どこにでもあるPCにMiracle Linux V3.0をインストールし、OracleとPostgreSQLをインストールしてあります。環境は細かく示してもあまり意味はないのであえて記述しませんが、1CPU、1.5GB Memory、IDEハードディスク1台、の環境です。

   メモリ上のバッファサイズなどはPostgreSQL、Oracleで共通になるよう調整しました。


テスト(1) 〜データの登録〜

   最初はデータ登録です。データを大量に登録するだけの場合の速度を比較します。最初は地道にinsertを繰り返す単純な操作の場合です。

10万件insert実行時の速度
表1:10万件insert実行時の速度


   表データは数値型の列が4つ、文字型の列が3つで計116byteの可変長で登録したデータは60〜70%程度のデータを作成しています。インデックスなしの場合、OracleとPostgreSQLの差は4%程度であり、ほとんど差はないといえます。

   インデックスは数値型列の3つに作成され、その内の1列が主キー索引です。全て数値型列の索引であった為、索引の有無がそれほど大きな負荷とはならなかったようです。PostgreSQLで10%、Oracleで5%ほどの差でしかありません。

   実際に大量データを一度に登録する場合、insert文を繰り返すのではなく、OracleならばSQL*Loader、PostgreSQLならばcopy … fromを用いる方が一般的かも知れません。

Oracle SQL*Loader使用時の例
表2:Oracle SQL*Loader使用時の例


   OracleでSQL*Loaderを用い、同一データをロードした場合、insert実行時の4%程度で登録できました。directモードならばさらに短縮できます。テスト環境が、ディスクI/Oに余裕が無くメモリには余裕がありバッファを大きく取ったこともあって、ここまで大きな差となって結果が現れました。

PostgreSQLで copyコマンドを使用した場合
表3:PostgreSQLで copyコマンドを使用した場合


   こちらも5%に満たない実行時間で処理を終えることができました。OracleのSQL*Loaderと比較してもほとんど差はありませんが、データ量が増加した場合はOracle(特にdirect=Trueの場合)との差が広がる傾向にあります。

   ただ、アプリケーション開発の現場で使用される割合はおそらくそれほど高くはないでしょう。これらを使用する場合、どうしても作成する環境から一旦はなれてコマンドを呼び出すという工夫が必要であったり、クライアント側では(別途インストールしないと)実行できないという面もあったりします。

   さらには独立したコマンドとは関係するデータとの連携がとり辛いことがネックになり、結局はinsertの繰り返しというパターンを何度も目にしてきました。

   総じて、ツールにはその実装の違いもあって差が出る場合もありえますが、データの登録処理についてはPostgreSQLとOracleでは大きな差は出ないという結果でした。特に実用上最も使用頻度が高いinsert文のレベルではほぼ同じパフォーマンスを発揮できていたと言えます。

1   2  次のページ


ミラクル・リナックス
著者プロフィール
ミラクル・リナックス株式会社  高橋 強
1993年某SIベンダへ入社後、Oracle、DB関連のコンサルティング、チューニング、社内案件の技術支援などを10年ほど担当。2004年ミラクル・リナックス株式会社へ入社。


INDEX
第5回:ベンチマークテスト
基本能力を比較してみる
  テスト(2) 〜データの検索〜
徹底比較!! Oracle & PostgreSQL
第1回 データベースソフトウェアの選択基準とは
第2回 アーキテクチャ比較  プロセス構造の違い
第3回 アーキテクチャ比較  ファイル構造の違い PostgreSQLの特徴
第4回 PostgreSQLの適用範囲を考える 〜 機能比較
第5回 PostgreSQLの適用範囲を考える 〜 データ登録のパフォーマンス
第6回 PostgreSQLの適用範囲を考える 〜 データ検索のパフォーマンス
第7回 PostgreSQLの適用範囲を考える 〜 更新・削除のパフォーマンス
第8回 PostgreSQLの適用範囲を考える 〜 ベンチマークテスト
第9回 PostgreSQLの適用範囲を考える 〜 管理・運用編
商用&OSSデータベースの現状と今後
第1回 シェアの差はそのままデータベースの実力の差か?〜RDBMS各々のメリットとデメリット比較〜
第2回 止まらない安心&止まっても安心?〜有名ブランドだけが可用性を保証できるのか?
第3回 1台なら大丈夫。つないでいっても大丈夫?〜OSSのスケーラビリティの実際
第4回 商用 vs. OSSの単純な機能比較では話にならない 〜 データベースのセキュリティを考える
第5回 ホントにつながる?商用とOSSの異種データベース接続を見てみよう
第6回 「バックアップとは何か」から見た、商用 vs OSSデータベースの違いとは?
第7回 ラクする?こだわる?データベースのパフォーマンスチューニング

人気記事トップ10

人気記事ランキングをもっと見る