收藏本站

人工智能培训机构,上海涛德,算法工程师,数据科学家高端培训机构-上海涛德

Oracle Hyperion Essbase内存调优之:Calculator Cache 内存工作原理及调优 ...

2013-5-23 21:22| 查看: 2897| 评论: 0

摘要: Databi.cn独家发布,转帖请注明出处。Calculator cache 是 Oracle Hyperion Essbase在执行calculation时用来跟踪需要计算哪些数据块的一片内存空间。合理的设置可以帮助我们加速脚本计算的速度。默认大小200,000 byt ...

Calculator cache Oracle Hyperion Essbase在执行calculation时用来跟踪需要计算哪些数据块的一片内存空间。合理的设置可以帮助我们加速脚本计算的速度。默认大小200,000 bytes

它通过在Calculator cache构建bitmap(位图)来进行跟踪当前计算脚本需要使用那些数据块。bitmap记录的是本次计算时哪些数据块将参与运算。


Calculator cache被能够被系统使用的前提是,计算过程至少访问两个sparse稀疏维。

在这个前提下满足下面两个条件的任意一个就可以使用

1且至少有一个sparse维的所有成语需要被访问到。如 Calc Dim(“sparse dim”)

2 在计算脚本中包含了SET CACHE ALL 命令。


Essbase在计算时会把sparse维分成两组1 Bitmap (位图) 维,2 Anchoring(锚定) 

Essbase按照outline顺序,从第一个稀疏维的每一个成员开始与后续的稀疏维的每一个成员做数学上的排列组合 ,直到后续某一个维无法全部进入存放bitmap的内存区域也就是我们这里的Calculator cache,这个维以及以后的维度就是anchor维。(也就是无法判断后续块是否存在)。这时Essbase也在内存中确定了一个bitmap的大小,以及需要多少个位图。我们的目标就是让所有位图都能够在内存中存放。


bitmap的数量就由:anchor 维度的Dependent parents决定

Dependent parents(独立父成员):如果一个成员有不只一个parents(共享成员)我们就认为该成员有Dependent parents。所以当sparse维中有一个成员有3parents,则我们认为改成员有3Dependent parents。而anchor 维度的最大Dependent parents 将决定bitmap的个数。



假设我们内存设置不合理:

我们一个有5sparse维参与运算。在5个维度分别的成员数是 2020,50,50,200

而前四个维度的组合信息能够完整的放入Calculator cache;由于默认内存不足第五个维成员和前四个维成员的组合无法放入内存。

假设第五个维度有3Dependent parents

Calculator cache中的bitmap大小为20*20*50*50/8=125,000 bytes。

位图的个数为:最大Dependent parents 3+2)个固定bitmap Essbase自己用的位图=5.

那么最佳 Calculator cache =位图大小 * 位图个数=125,000 bytes*5=625,000 bytes

这时:Essbase.cfg 需要做如下修改

CALCCACHEDEFAULT 625,000

<点击:上海涛德Oracle OCM认证及BI商业智能课程>|人工智能培训-上海涛德 ( 沪ICP备14006824号 )|网站地图   My title page contents

GMT+8, 2019-4-24 14:52 , Processed in 0.111937 second(s), 14 queries , Gzip On.

回顶部