智能计算和数据块状态
启用 Intelligent Calculation(智能计算)后, Essbase 将检查数据库中块的更新状态,并仅计算“脏”块及其相关父代。禁用后, Essbase 将计算计算范围中的所有数据块,而不管它们是标记为干净还是脏。
标记为“清除”的块
Essbase 在以下类型的计算中将数据块标记为干净:
-
数据库的完整计算 (CALC ALL)(默认计算)。
-
计算一个 CALC DIM 语句中的所有维的计算脚本。
例如,以下计算脚本将计算 Sample Basic 数据库中的所有成员:
CALC DIM(Measures, Product, Market, Year, Scenario);将此计算脚本与使用两个 CALC DIM 语句计算所有成员的计算脚本进行比较:
CALC DIM(Measures, Product); CALC DIM(Market, Year, Scenario);
使用两个 CALC DIM 语句会导致 Essbase 至少两次通过数据库进行计算。在此计算中,默认情况下, Essbase 不会将数据块标记为“干净”。由于智能计算取决于准确的干净和脏状态,因此您必须仔细管理这些标记。
除非您在计算脚本中使用 SET CLEARUPDATESTATUS 命令,否则 Essbase 仅在上述情况下才会将计算的数据块标记为干净。请参见 The SET CLEARUPDATESTATUS Command 。
标记为“脏”的块
在以下情况下, Essbase 会将数据块标记为脏数据块:
-
仅当 SET CLEARUPDATESTATUS AFTER 不是计算脚本中的部分计算语句时,才计算数据库部分计算的数据块
-
将数据加载到数据块
-
重建数据库(例如向密集维添加成员)
-
将数据复制到数据块;例如,使用 DATACOPY
清洁/脏状态维护
要在计算数据库子集或执行多次计算通过时使用智能计算,请仔细考虑 Essbase 如何将数据块标记为干净的含义,以确保 Essbase 尽可能高效地重新计算数据库。
例如,计算数据库的某个子集时,默认情况下,新计算的数据块不会标记为“干净”。通过在计算脚本中使用 SET CLEARUPDATESTATUS AFTER 命令,可以确保新计算的块标记为清除。在创建计算脚本之前,请参见 The SET CLEARUPDATESTATUS Command 。