postgresql データベースのテーブルに対してクエリを実行しています。データベースはリモート マシン上にあります。このテーブルには、postgresqlパーティショニング機能を使用した約 30 のサブテーブルがあります。
クエリは、約 180 万行の大きな結果セットを返します。
私のコードでは、春の jdbc サポート、メソッドJdbcTemplate.queryを使用していますが、RowCallbackHandlerが呼び出されていません。
私の推測では、コードを呼び出す前に、postgresql jdbc ドライバー (私はバージョン 8.3-603.jdbc4 を使用しています) が結果をメモリに蓄積しています。fetchSize 構成でこれを制御できると思いましたが、試してみましたが、何も変わりません。postgresqlマニュアルが推奨するようにこれを行いました。
このクエリは、Oracle XE を使用したときに正常に機能しました。しかし、Oracle XE では使用できないパーティショニング機能のために、postgresql に移行しようとしています。
私の環境:
- Postgresql 8.3
- Windows Server 2008 エンタープライズ 64 ビット
- JRE 1.6 64 ビット
- 春 2.5.6
- Postgresql JDBC ドライバー 8.3-603