TOP比較データ> Oracleとの比較
徹底比較!! Oracle & PostgreSQL
徹底比較!! Oracle & PostgreSQL

第8回:PostgreSQLの適用範囲を考える 〜 ベンチマークテスト

著者:ミラクル・リナックス  高橋 強   2005/8/12
前のページ  1  2  3
Oracleとの比較


OracleとPostgreSQL(VACUUM未実行)
図3:OracleとPostgreSQL(VACUUM未実行)

   上記は同じテストを行った場合のOracleの結果とVACUUMを実行しなかった(3回目、4回目の間ではデータ更新も発生しないので、同じ条件でしかありません)場合のPostgreSQLを比べてみたものです。

   PostgreSQL単独で見た場合、図1の結果と比べると、VACUUMが実行されないために、3回目と4回目ではデータファイルのサイズに違いはなく、レスポンスタイムもほとんど同じ結果となりました。

   一方のOracleの場合、表は個別のデータファイルと対応しないため、社員表を構成するエクステント全体の総ブロック数からそのサイズをだしています。この値は複数回の50万件更新後でも、まったく変わりはありませんでした。レスポンスタイムも悪化は見られずほぼ一定の結果でした。

   Oracleは「該当行を直接書き換える」ので表データ全体のサイズが変わらず、データ数やその位置にも変化がないため、検索時間にも影響がでません。

※注: updateする列「その他」は可変長文字列であり、その列長を大きく増やした場合は行サイズが大きくなり、結果として使用ブロック数が増加したり、位置が変わる場合があり得ます。このテストでは列長はほとんど変えずにテストを行っています。またHWM(High Water Mark)以後の未使用ブロックも計算に含まれています。
ベンチマーク総論

   数回に渡ってOracleとPostgreSQLを使いベンチマークテストを行ってきましたが、どちらにも得手不得手がある事がご理解いただけたでしょうか?

   登録・削除はPostgreSQL、検索・更新についてはOracleの方に分がありそうです。ただし、繰り返しになりますが結果の数値だけを単純に見るのではなく、「それらの差が何処から生まれてくる物であるのか」という事を知るための情報の1つと考えて下さい。

   このテストの主たる目的は構造の違いから発生するパフォーマンス上の影響を確認するという意味合いが強く、純粋にパフォーマンスの善し悪しを判断するためのものではない事もまたご理解いただけるかと思います。

   ポイントとなるのは、以下の通りです。

  • PostgreSQLが追記型である点

  • OracleのREDO、UNDOの構造の複雑さ

  • PostgreSQLのVACUUM

  • インデックス作成列の選別
   それぞれの良い点悪い点がどういった理由に起因するかがある程度思い描ければ、実システムの構築でも考慮すべき点に気付く事ができ、要件のプライオリティやバランスの中でDBの選定に役立てる助けになる物と考えます。

前のページ  1  2  3


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


INDEX
第8回:PostgreSQLの適用範囲を考える 〜 ベンチマークテスト
  VACUUM実行の有無によるパフォーマンスの影響
  テスト其の伍 〜 VACUUMの影響
Oracleとの比較