Debian Linuxで動作するPostgreSQL 9.1を使用していくつかのベンチマーク作業を行っています。私は、共通の部分を共有するクエリの作業負荷をベンチマークしたいと思います。各クエリを実行する前に、私は、データベースを再起動し、次のコマンドを実行します。PostgreSQL 9.1でのベンチマークのためのキャッシュのフラッシュ
は3>/proc/sys/vm/drop_cachesと
は、共有メモリとOSのキャッシュの両方をドロップを狙っエコー。しかし、別の順序で同じクエリワークロードを実行すると、異なるクエリ応答時間が発生することに気付きました。どういうわけか、クエリオプティマイザは、一般的なクエリ部分を効率的に実行する方法や、以前にキャッシュされた結果を再利用することを覚えていると思います。
この問題を回避する方法はありますか?クエリの順序に関係なく、ほぼ同じ応答時間を得たいと思います。実際の実行時間を抽出するために、EXPLAIN出力を解析していることに注意してください。