PostgreSQL JDBC Driverを使ってクエリを投げる際に過去にハマった点をメモしておきます。 PreparedStatementの性能傾向が変わる? PreparedStatementオブジェクトを作ってクエリを繰り返し実行していると、ある時点から急にクエリ性能が良くなる場合があります。 これは、PostgreSQL JDBC Driverの仕様で、一定回数以上同じPreparedStatementオブジェクトでクエリ実行を繰り返すと、PostgreSQLサーバ側にクエリがキャッシュされてさらに高速化されるためです。 つまり、PostgreSQL JDBC Driverを使っている場合、PreparedStatementによるクエリ実行の最適化には2段階あって クライアント側の最適化 クライアント側 + PostgreSQLサーバ側の最適化 となっています。 特に、Postg