SQLite java内存使用率增加,直到出现outofmemory异常

SQLite java内存使用率增加,直到出现outofmemory异常,java,sqlite,out-of-memory,Java,Sqlite,Out Of Memory,我在java程序中使用SQLite。java程序运行时,会向数据库发送几个查询,并在内存中创建临时表,然后删除(使用DROP) 问题是,当数据库中各种操作的数量增加时,来自java程序的内存使用也会增加。结果,程序在某个点崩溃,并出现outofmemory异常。 我使用PRAGMA temp_store=2将临时表保存在内存中,但每次构建另一个临时表之前,我都会删除(使用DROP tablename) 这与数据库保存的日志有关系吗? 如何解决这个问题?如果不查看您的程序,就无法说出问题所在。您是

我在java程序中使用SQLite。java程序运行时,会向数据库发送几个查询,并在内存中创建临时表,然后删除(使用DROP)

问题是,当数据库中各种操作的数量增加时,来自java程序的内存使用也会增加。结果,程序在某个点崩溃,并出现outofmemory异常。 我使用PRAGMA temp_store=2将临时表保存在内存中,但每次构建另一个临时表之前,我都会删除(使用DROP tablename)

这与数据库保存的日志有关系吗?
如何解决这个问题?

如果不查看您的程序,就无法说出问题所在。您是否将针对数据库运行的查询结果保留在内存中?如果您的程序是以这样一种方式编写的,即您有多个大型JDBC结果集,而垃圾收集器无法确定释放它们使用的内存是否安全,那么您很容易就会耗尽内存。

如果不查看您的程序,就不可能说出问题所在。您是否将针对数据库运行的查询结果保留在内存中?如果您的程序是以这样一种方式编写的,即您有多个大型JDBC结果集,而垃圾收集器无法确定释放它们使用的内存是否安全,那么很容易就会耗尽内存。

是的,我将结果集保留在内存中以处理它,但我假设垃圾收集器会在某个时候收集它。。我使用了Runtime.getRuntime().gc(),但没有区别。如何显式地去除结果集?是的,我将结果集保留在内存中以处理它,但我假设垃圾收集器会在某个时候收集它。。我使用了Runtime.getRuntime().gc(),但没有区别。我如何明确地摆脱结果集?