汇总存储多维数据集中的大纲分页

聚合存储 (ASO) 多维数据集大纲是可分页的,可显著减少非常大的多维数据集的内存使用量。Essbase 将大纲的一部分预加载到内存中。在数据检索期间, Essbase 会根据需要将大纲的其他部分页到内存中。

创建聚合存储多维数据集时,大纲将以可页面格式创建。

通过将大纲分页到内存中, Essbase 可以处理非常大的大纲(例如,1 千万个或更多成员),但可能会增加数据检索时间。

注意:

具有可页面大纲的聚合存储多维数据集包含内存页,因此其大纲文件可能大于二进制块存储大纲文件。

大纲分页限制

可构建大纲的最大大小(成员数)取决于以下几个因素:

  • Essbase 的可用内存

  • 为其他用途分配的 Essbase 中的内存量

  • 每个成员所需的内存量(以及每个成员的别名)

Essbase 在启动时使用大约 40 MB 的内存。此外,各种高速缓存需要以下内存分配:

  • 大纲分页高速缓存:8 MB

  • 聚合存储数据高速缓存:32 MB

  • 聚合存储聚合高速缓存:10 MB

因此, Essbase 的初始内存占用约为 90 MB。此外,还必须分配内存来处理传入的查询请求。为此目的保留的典型内存约为 300 MB。因此,为 Essbase 分配的内存总量为 390 MB。

在具有 1.85 GB 可寻址内存的 Windows 系统上,用于构建和加载大纲的可用量约为 1.46 GB(1.85 GB - 390 MB = 1.46 GB)。

最大大纲大小取决于是使用维构建构建构建还是从已加载到 Essbase 中的大纲构建。

维构建大纲分页限制

要使用维构建来构建大纲, Essbase 会为每个成员分配大约 100 个字节,加上成员名称的大小以及成员的所有别名的大小(最多允许 10 个别名)。

对于平均成员名称为 15 个字符且每个成员有一个别名(20 个字符)的示例大纲(使用单个字节代码页),所添加的每个成员的内存要求:

100 + 15 + 20 字节 = 135 字节

可在维构建中添加的成员总数是可用内存(1.46 GB,即 153,092,060 字节)除以每个成员(135 个,大约 1100 万个成员)的字节数。

在具有 2 GB 以上的可寻址内存的系统上,大纲可以与可用的额外内存成比例增加。

维构建完成后,dbname.otn 文件将保存在多维数据集目录中。.otn 文件用作大纲重构过程的输入,该过程将旧大纲替换为新大纲。在重组过程中,轮廓的两个副本被加载到内存中,旧的(可能为空)和新的,因此可以重构的大纲的最大大小取决于旧轮廓的大小。

在以空大纲开头的维构建中,只有一个大纲加载到内存中。

已加载大纲分页限制

在运行时或重组期间加载到 Essbase 中的大纲的内存要求与维构建的内存要求不同。Essbase 为每个成员分配大约 60 个字节,加上成员名称的大小加上 5 个字节,再加上成员的所有别名的大小(最多允许 10 个别名)加上 5 个字节。对于平均成员名称为 15 个字符且每个成员有一个别名(20 个字符)的示例大纲,需要为所添加的每个成员提供内存:

60 + 15 + 5 + 20 + 5 个字节 = 每个成员 105 个字节

假设可用内存为 1.46 GB,则可加载的大纲的最大大小为 1400 万个成员(146 GB/105 字节)。

1 400 万个成员是重组过程中加载的两个大纲的总和。例如,如果现有大纲有 500 万个成员,则新大纲最多可以有 900 万个成员。在增量维构建中,建议先构建较小的维,最后构建较大的维,以实现最大大纲大小。