SQLite java内存使用量增加,直到outofmemory异常

时间:2010-02-02 15:15:26

标签: java sqlite out-of-memory

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

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

这是否必须对数据库保留的日志执行任何操作? 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

看着你的程序,不可能说出问题所在。您是否在内存中保存针对数据库运行的查询结果?如果您的程序编写方式使得您有多个大型JDBC结果集并且垃圾收集器无法确定天气,则可以安全地释放它们使用的内存,您可能很容易耗尽内存。