InfoCube信息立方体的优化

  • 颗粒度尽可能大:尽可能不要在Cube里放太明细的数据(即维度字段越小越好),这种需求首先考虑R3ABAP解决,若是非要在BW,能够考虑在DSO出明细报表,在Cube出汇总报表,经过RRI接口调用明细报表。
  • 拆分多个:Cube的数据量很大时,能够拆分红多个Cube,再用MultiProvider拼起来,这样query会在NCube中并行,提升效率。这就是所谓的逻辑分区。常见的分区方式有按年月,按国家,按BU,按类型等。
  • 压缩:CubeCompressionCompression 本质上是去掉Data Dimension,这样fact table就被压缩了,可是request id也消失了,将没法经过request id去管理数据(慎用,最好是半年甚至一年以上的数据)
  • 索引:数据库的索引能够加快查询速度
  • 分区:对于很大的Cube,能够作partition,这是物理分区,只支持按时间分区。
  • 汇集:使用Aggregation能够提升性能。可是Aggregation自己是cube的一个子集,提升性能的同时也加大了数据冗余,因此不要用太多。
  • Staitics按期刷新DB Statistics 能够提升reporting的效率。
  • 使用MP维度设计上,避免不少数据量很大char.放在一个维度上(多对多的不要放在一个维度里),由于这样会让维度表变得很大。一般,尽量拆分红更多的维度(不过维度太多会致使 fact table巨大,因此要作好平衡),而后在multiprovider 层面,把相关(指业务意义上的相关)的char都放一个维度里,而后作好Mapping,这样便可以让用户更容易理解MultiProvider,下层CUBE维度的从技术角度拆分与组合(按1:11:N的放在一块儿的原则)提升了性能,一箭双鵰。
  • Line item Dimension对于material等很大的主数据,使用Line item Dimension(即将MN多对多的字段,让他们一我的一个维度,这样天然就成了行项目维度了,提升性能).
  • BIA:使用BIA是比Aggregation更有效的方法,就是要花很多钱。
相关文章
相关标签/搜索