Oracleとの比較
Oracleとの比較

図3:OracleとPostgreSQL(VACUUM未実行)
上記は同じテストを行った場合のOracleの結果とVACUUMを実行しなかった(3回目、4回目の間ではデータ更新も発生しないので、同じ条件でしかありません)場合のPostgreSQLを比べてみたものです。
PostgreSQL単独で見た場合、図1の結果と比べると、VACUUMが実行されないために、3回目と4回目ではデータファイルのサイズに違いはなく、レスポンスタイムもほとんど同じ結果となりました。
一方のOracleの場合、表は個別のデータファイルと対応しないため、社員表を構成するエクステント全体の総ブロック数からそのサイズをだしてい ます。この値は複数回の50万件更新後でも、まったく変わりはありませんでした。レスポンスタイムも悪化は見られずほぼ一定の結果でした。
Oracleは「該当行を直接書き換える」ので表データ全体のサイズが変わらず、データ数やその位置にも変化がないため、検索時間にも影響がでません。
ベンチマーク総論
数回に渡ってOracleとPostgreSQLを使いベンチマークテストを行ってきましたが、どちらにも得手不得手がある事がご理解いただけたでしょうか?
登録・削除はPostgreSQL、検索・更新についてはOracleの方に分がありそうです。ただし、繰り返しになりますが結果の数値だけを単純に見るのではなく、「それらの差が何処から生まれてくる物であるのか」という事を知るための情報の1つと考えて下さい。
このテストの主たる目的は構造の違いから発生するパフォーマンス上の影響を確認するという意味合いが強く、純粋にパフォーマンスの善し悪しを判断するためのものではない事もまたご理解いただけるかと思います。
ポイントとなるのは、以下の通りです。
-
PostgreSQLが追記型である点
-
OracleのREDO、UNDOの構造の複雑さ
-
PostgreSQLのVACUUM
- インデックス作成列の選別
それぞれの良い点悪い点がどういった理由に起因するかがある程度思い描ければ、実システムの構築でも考慮すべき点に気付く事ができ、要件のプライオリティやバランスの中でDBの選定に役立てる助けになる物と考えます。
バックナンバー
この記事の筆者
1993年某SIベンダへ入社後、Oracle、DB関連のコンサルティング、チューニング、社内案件の技術支援などを10年ほど担当。2004年ミラクル・リナックス株式会社へ入社。
筆者の人気記事
大手ブログ検索サイトがPostgreSQLからOracleへ移行を決断した理由(後編
2006年4月13日 20:00
大手ブログ検索サイトがPostgreSQLからOracleへ移行を決断した理由(前編)
2006年4月5日 20:00
PostgreSQLの適用範囲を考える 〜 管理・運用編
2005年12月1日 20:00
PostgreSQLの適用範囲を考える 〜 ベンチマークテスト
2005年8月12日 20:00
PostgreSQLの適用範囲を考える 〜 更新・削除のパフォーマンス
2005年6月20日 20:00
PostgreSQLの適用範囲を考える 〜 データ検索のパフォーマンス
2005年5月30日 20:00
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。