【发布时间】:2018-09-07 17:49:03
【问题描述】:
我在使用 Firebird 时遇到了一些问题。一些 SQL 查询收到错误“Java Heap Space”。
我已经修改了所有查询并且似乎是正确的。但是,在做了一些测试之后,我注意到只有当 SQL 查询没有返回行的限制时才会发生错误。
如果我使用SELECT FIRST(10) field1, field2 from table 运行查询,它会从db 返回结果,如果没有FIRST(),则会发生错误。
安装 Firebird 的原始服务器内存有限,所以我只是在我的个人计算机上安装了 Firebird,恢复了备份并进行了测试。我当前的计算机有很多内存和 CPU 来运行这个简单的查询并且会出现同样的问题。
我的 Firebird 版本是 2.5。我在 Firebird 官方文档中进行了搜索,但没有发现任何有用的信息。任何人都知道可能导致此错误的原因是什么?
以下是测试期间的错误打印和我的计算机任务管理器。
[
【问题讨论】:
-
你为什么还在使用 Firebird 2.5.0?最新的 2.5 是 2.5.8。今年发布2.5.8,8年前发布2.5.0。
-
如果不使用
first,您的查询将检索多少行? -
我正在使用 2.5 版本来准确复制在原始服务器上运行的环境。也许我应该将 Firebird 更新到最新版本,看看它是否能解决问题?
-
"你的查询将检索多少行而不使用 first" 我不知道。它在返回所有行之前崩溃=/但我认为它应该接近 150 ~ 250 行。 (至少是最终用户在报告问题时告诉我的)
-
您总是可以通过
count(*)实际知道有多少行,因为我不希望 250 行会导致这样的错误(除非此应用程序的内存配置非常紧张,或者它有列有非常大的斑点)。升级您的 Firebird 版本对此没有影响(否则我会将其包含在我的答案中)。您的 Firebird 版本非常旧,存在已知的安全漏洞。它应该在几年前就升级了。
标签: java firebird dbeaver jaybird