注:以下示例以Essbase自带的Sample.Basic库为例
Clearblock all实际上只是清除了index文件里的索引条目,并没有清除数据文件。所以你会发现执行了clearblock之后pag文件还是那么大。另外,clearblock会导致数据库有很多碎片,你需要定期执行碎片整理来提升数据库性能。
除此之外,我们还可以和FIX接合来使用CLEARBLOCK,如下:
FIX("Actual")
CLEARBLOCK All;
ENDFIX
需要注意的是,如果是需要清除整个数据块,CLEARBLOCK会采用清除索引条目的方式。然而上面的"Actual"是Scenario密集维中的成员,FIX密集成员,就意味着FIX所有的数据块,此时CLEARBLOCK并不会清理所有数据块,而是将所有的数据块都读到内存中,然后只清除"Actual"数据,因为你会发现上面的语句运行起来比较慢。因此,当FIX和CLEARBLOCK和密集维使用的时候 需要注意。
对于这一点,我们可以通过打开详细日志来观察:
在脚本中加入set msg detail;
然后执行计算脚本,你会看到如下输出:
[Tue Dec 26 17:26:21 2017]Local/Sample/Basic/admin@Native Directory/140523088082688/Info(1012558)
Clearing all data blocks from [(ALL)] partition with fixed members [Scenar