我正在对 postgresql 数据库中的表运行查询。数据库位于远程计算机上。该表有大约 30 个使用 postgresql分区功能的子表。
该查询将返回一个大的结果集,大约 180 万行。
在我的代码中,我使用 spring jdbc 支持,方法JdbcTemplate.query,但我的RowCallbackHandler没有被调用。
我最好的猜测是 postgresql jdbc 驱动程序(我使用版本 8.3-603.jdbc4)在调用我的代码之前将结果累积到内存中。我认为fetchSize 配置可以控制这一点,但我试过了,没有任何改变。我按照 postgresql 手册的推荐这样做了。
当我使用 Oracle XE 时,此查询运行良好。但是我正在尝试迁移到 postgresql,因为分区功能在 Oracle XE 中不可用。
我的环境:
- PostgreSQL 8.3
- Windows Server 2008 企业版 64 位
- JRE 1.6 64 位
- 春天 2.5.6
- Postgresql JDBC 驱动程序 8.3-603