09年初,做essbase9.3+obiee10.1.3.4,唉!
身心被無限的摧殘,萌生了反編譯essbsase的想法,於是第一次搜到了ida,
好不容易將essbase.exe反編譯成c,看到c代碼的第一眼我放棄了。
後來的幾年時間,在學習essbase的過程中遇到一些問題,比如:
BSO
- 數據文件的壓縮方式
位圖壓縮是怎麼壓縮,怎麼解壓的?
空塊佔了多少空間?
- 塊內部的結構
是多維數組嗎?
數組的第一個維是cube的第一個密集維?需要更多證據。
- 索引的結構
索引的數據結構是什麼?
- 碎片是什麼
你有辦法將1G的數據庫的平均分簇率降到0.07嗎?
- 各種計算的本質差異
爲什麼不創建塊?
我們該放棄分攤函數嗎?
- 密集重構在做什麼?
有必要這麼慢嗎?
- c-api
給定稀疏維組合,怎麼知道塊是否存在?
10k個組合呢?有多少塊存在?
ASO
- 爲什麼可以快速聚合
- 索引怎麼存的
- 數據怎麼存的
- 聚合視圖怎麼存的
再一次想反編譯essbase,用單步調試來虐它。
由於沒有彙編基礎,不瞭解cpu,寄存器,沒有ida的使用經驗,也沒有c++的開發經驗,
所以這個原本單純的想法變成了自虐。所以開了這個博客,希望有人能分擔。