テスト其の弐 〜 データの検索

テスト其の弐 〜 データの検索

   今回はデータの検索速度を測定してみます。データは前回のテスト其の壱で使用した表をそのまま検索データとして使用します(データは10万件)。


インデックスなしの全件検索での集計

   全件検索時のパフォーマンスを測定します。インデックスがない状態でテストデータ中の数値列(給与)の集計(SUM)を実行し、その速度を測定します。

   インデックスを作成しない状態でSUM関数による集計を行うため、全データへアクセスする必要があります。処理は単独のセッションで行い、 SQL*Plus、psqlで実行します。データベースを起動した直後の状態と、数回検索を行なった後の状態のそれぞれを測定してみます。つまり、データ がキャッシュされていない場合とキャッシュされている場合の測定です。


実行したSQL文
select sum(給与) from 社員表;
インデックスなしの場合の集計検索時間

図1:インデックスなしの場合の集計検索時間


   Oracle、PostgreSQLともに、キャッシュ上にデータが存在していないDB起動直後の場合より、二度目以降のキャッシュされている状態の方が時間が短縮されました。処理コストの大きいディスクI/Oが省略できるため、一般的に処理が高速化されます。

   PostgreSQLはどちらの状態でも、Oracleと比較すると多くの時間を必要としています。PostgreSQLに対するOracleの処理時間はそれぞれ20%、7%程度であり、全件検索時の処理速度はOracleの方が高速であると言えます。

   データ量に対するキャッシュのサイズは十分に用意しているため、I/Oの差は「起動直後−二度目以降」の差として現れるはずです。起動直後と二度目 以降の差よりも、OracleとPostgreSQLの差の方が大きいことから、検索と集計の処理でのオーバヘッドの差が顕著に現れていると考えることが できます。

   さらに言えば、データのフラグメントが進んだ場合、PostgreSQLではデータ格納上の理由により、その悪化がどうしても顕著に現れてしまいます。

人気記事トップ10

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

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30