我正在對postgresql數據庫中的表運行查詢。數據庫位於遠程機器上。該表有大約30個使用postgresql partitioning capability的子表。postgresql查詢上的大型結果集
該查詢將返回一個大型的結果集,大約有180萬行。
在我的代碼中,我使用spring jdbc支持,方法JdbcTemplate.query,但我的RowCallbackHandler未被調用。
我最好的猜測是postgresql jdbc驅動程序(我使用版本8.3-603.jdbc4)在調用我的代碼之前在內存中累積結果。我認爲fetchSize configuration可以控制這一點,但我試了一下,沒有任何改變。我做了這個postgresql手冊recomended。
當我使用Oracle XE時,此查詢正常工作。但是我正在嘗試遷移到postgresql,因爲分區功能在Oracle XE中不可用。
我的環境:
- PostgreSQL 8.3版本
- Windows Server 2008企業64位
- JRE 1.6 64位
- 春2.5.6
- PostgreSQL JDBC驅動8.3-603
您的電話正在返回嗎?如果沒有,你嘗試了ctrl- \(Windows的ctrl-break),jstack,jconsole,visualvm或類似的找到線程停止的地方? – 2009-05-05 22:08:40
它正在處理驅動程序內部的查詢。 – tuler 2009-05-06 00:25:30
另請參見https://stackoverflow.com/a/47517489/32453 – rogerdpack 2017-11-27 19:56:36