0

鉴于:

  1. HSQLDB 嵌入式
  2. 50 个不同的数据库(我有 50 个不同的数据源)
  3. 所有的数据库都是file:/这样的
  4. 所有表都已缓存
  5. 所有嵌入式数据库实例组合允许使用的 RAM 量是有限的,并在 java 进程启动时给出。
  6. LOG文件被禁用(崩溃时无需恢复)

我的理解是单个数据库实例使用的 RAM 由以下几部分组成:

  • 所有表的缓存(我所有的表都被缓存了)
  • 数据库实例内部状态

此外,据我所见,我有这两个属性来控制单个数据库实例的缓存的总大小:

  • 设置文件缓存大小
  • 设置文件缓存行

但是,它们仅控制数据库实例使用的 RAM 的缓存部分。另外,它们是每个数据库实例,而我想限制所有实例作为一个整体。

所以,我想知道是否可以指示 HSQLDB 保持在指定的 RAM 总量内,包括所有数据库实例?

4

1 回答 1

0

您只能限制每个数据库实例的 CACHE 内存使用。每个实例相互独立。

您可以减少每个数据库的 CACHE SIZE 和 CACHE ROWS 以适应您的应用程序。

HSQLDB 不使用很多其他内存,但是当它使用时,它会使用 JVM 的内存,这些内存在不同的数据库实例之间共享。

于 2013-04-06T13:42:36.267 回答