MAXFORMULACACHESIZE

通过 MAXFORMULACACHESIZE 配置设置,您可以设置公式高速缓存 Essbase 的最大虚拟卷,以便使用公式计算成员。要限制单个查询可以使用的内存量,请改用 MAXFORMULACACHEMEMORYLIMIT。

MAXFORMULACACHESIZE 配置适用于处于混合模式的聚合存储 (ASO) 数据库和块存储 (BSO) 数据库。

语法

MAXFORMULACACHESIZE [appname [dbname]] n
  • appname - 可选。要为特定应用程序设置最大高速缓存虚拟卷数,请指定应用程序名称。

  • dbname - 可选。要为特定数据库(多维数据集)设置最大高速缓存虚拟卷数,请指定多维数据集名称。如果指定了 dbname,则还必须指定 appname

  • n - 一个整数,用于指定要设置为可用于计算具有公式的成员的最大高速缓存虚拟卷的 MB 数。

说明

如果为计算大纲成员预留的高速缓存 Essbase 数量不足,则 Essbase 将切换其公式高速缓存机制以仅分配现有和临时高速缓存值。如果发生这种情况并启用了查询跟踪,则会在 query_trace.txt 中记录以下消息:

Max formula cache size overflow. Calculation cache will use map structure for values. If query performance is insufficient try to extend MAXFORMULACACHESIZE over this limit: n

以下准则可帮助您确定要用于 n 的值:

  1. 标识由动态成员表示的查询维。

  2. 将这些维的大小乘以获得多个成员。

  3. 将成员数乘以 8 以获得建议的 n 值(不超过 4G)。

例如,默认公式高速缓存大小 1024 允许 1024/8=128 成员位于高速缓存的虚拟卷中。

说明

  • 仅当您的查询引用了至少一个具有公式的动态成员,或者您的 MDX 查询在 WITH 部分中有计算成员时,此设置才相关。

  • 此高速缓存按计算线程分配。可以为并发 MDX 请求分配多个高速缓存对象,每个对象都具有 MAXFORMULACACHESIZE 中指定的最大虚拟卷。

  • 除非需要,否则不会使用整个指定金额。

  • 查询完成后将释放内存。

范例

MAXFORMULACACHESIZE 2048

将公式高速缓存的最大虚拟卷设置为 2048。