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++的开发经验,
所以这个原本单纯的想法变成了自虐。所以开了这个博客,希望有人能分担。