我们的应用程序使用java spring boot将数据从avro文件加载到内存h2数据库中。我要插入145000000行,并且出现Java堆错误。它可以处理200万行。如何解决此问题?
错误粘贴到下面的原因:org.h2.jdbc.JdbcSQLNonTransientConnectionException:内存不足。SQL语句:位于org.h2.message.DbException.getJdbcSQLException(DbException.java:617)〜[h2-1.4.199.jar:1.4.199],位于org.h2.message.DbException.getJdbcSQLException(DbException.java:427 )〜[h2-1.4.199.jar:1.4.199] at org.h2.message.DbException.get(DbException.java:194)〜[h2-1.4.199.jar:1.4.199] at org.h2 .message.DbException.convert(DbException.java:341)〜[h2-1.4.199.jar:1.4.199] at org.h2.command.Command.executeUpdate(Command.java:278)〜[h2-1.4。 199.jar:1.4.199]在org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:233)〜[h2-1.4.199.jar:1.4.199]在org.h2.jdbc.JdbcStatement.execute( JdbcStatement.java:205)〜[h2-1.4.199.jar:1.4.199]在com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:
问题来源:Stack Overflow
您正在尝试将1.45亿行加载到内存中。因此,显然您需要给JVM更多的内存来处理该数量的存储。
查看添加/更改-XmxJVM参数以分配更多的内存。请参阅此处以获取更多信息:
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。