EPM版本:11.1.2.4
隨着系統應用及時間的推移,存儲在Essbase中的數據會越來越多且由於規則的計算,會產生大量空塊,進而數據文件膨脹,最終導致在一些特定操作後刷庫、重構時,消耗大量的時間重構數據文件,一次刷庫、重構甚至耗時幾小時!
理想狀態下,我們應該在系統開放之前維護並刷庫、重構,但實際情況中我們難免遇到預算等編制過程中需要新增科目等修改稠密維的操作,這個時候重構一次若耗時幾小時會對業務造成很大的影響,是不能接受的。所以,提升刷新、重構效率是一件非常重要的事情。
那麼,如何提升效率呢?
我們知道稀疏維修改,不會觸發Essbase重構,所以速度很快,耗時大約在秒級。當做了一些特定操作,如稠密維新增member等,刷庫時會觸發Essbase重構,此時後臺將對pag數據文件進行重構,數據越多、數據文件越大(空塊會導致數據文件膨脹),重構速度越慢,所以優化的第一個方法就是減少數據文件的大小。
一、減少數據文件大小(操作需謹慎、操作前做好數據備份)
①歷史數據歸檔遷移
將歷史數據歸檔遷移到備份應用中,並將原應用中歷史數據及其塊刪除,注意,如果僅使用cleardata那麼僅僅是將數據清除,並不會將刪除數據後的空塊清掉,所以還需要clearblock操作,具體應用請參考官方文檔;
②定期reset、reload數據,消除執行規則產生的空塊
二、啓用並行重構
減少數據文件大小後,是否還有其他方法能提升重構效率呢?答案是有的,那就是啓用並行重構。
Essbase在進行重構操作時,默認是按照塊的編碼串行重構,這種方式效率並不高。官方提供了並行的方式以提升重構效率,我們可以通過設置essbase.cfg(設置完需重啓Essbase服務生效),啓用並行重構並設置並行度。
語法如下:
RESTRUCTURETHREADS [ appname [ dbname] ] n
示例及說明:
RESTRUCTURETHREADS 8 /*對Essbase全局設置重構並行線程爲8*/
RESTRUCTURETHREADS Sample 8 /*對Sample應用的所有數據庫設置重構並行線程爲8*/
RESTRUCTURETHREADS Sample Basic 8 /*對Sample應用的Basic數據庫設置重構並行線程爲8*/
RESTRUCTURETHREADS xxxxx Basic 8 /*對所有應用的Basic數據庫設置重構並行線程爲8*/
按照上述語法,我們可以根據自己的需要,全局、分應用、分數據庫的設置重構並行線程。
要注意的是,由於我們各自系統所在服務器配置情況千差萬別,並行線程設置的推薦值也不完全一致,官方給瞭如下建議值,我們可以根據自己的情況選擇適合的並行線程。