1
對此有另一個可能相關的問題,但它沒有答案,提問者也沒有澄清任何問題。使用PostgreSQL的Java內存不足
所以,當我在postgres中查看一個大的結果集時,java似乎破壞了。
我正在運行的查詢試圖獲得約5.5M行。基本上我試圖從Postgres數據庫填充Neo4J數據庫。
我不會打擾發佈代碼,除非有人問我是否認爲它很通用。下面是異常輸出:52
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Unknown Source)
at java.lang.Class.getDeclaredField(Unknown Source)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<init>(Unknown Source)
at java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater(Unknown Source)
at java.sql.SQLException.<clinit>(Unknown Source)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1818)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
at sqlToGraph.SqlToGraph.main(SqlToGraph.java:52)
線只是查詢,像這樣:
rs = st.executeQuery("select player_lo, player_hi, total_hands_lo, total_hands_hi, (pc_lo + pc_hi)/2 as avg_pc from pair");
所以我想RS越來越蠻大的。我想我可以使用LIMIT和OFFSET並運行程序幾百次,或者讓它在一個循環中重置rs,但我寧願不必。
jdbc驅動程序版本? – leonbloy