如何限制多个嵌入式HSLQDB数据库实例作为一个整体使用的RAM?

时间:2013-04-06 13:31:43

标签: hsqldb

假设:

  1. HSQLDB嵌入式
  2. 50个不同的数据库(我有50个不同的数据源)
  3. 所有数据库都是file:/
  4. 所有表格都是CACHED
  5. 所有嵌入式数据库实例允许使用的RAM数量有限,并在启动java进程时给出。
  6. 禁用LOG文件(崩溃时无需恢复)
  7. 我的理解是,单个数据库实例使用的RAM由以下部分组成:

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

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

    • SET FILES CACHE SIZE
    • SET FILES CACHE ROWS

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

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

1 个答案:

答案 0 :(得分:0)

您只能限制每个数据库实例的CACHE内存使用量。每个实例都独立于另一个实例。

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

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