• 提高cube性能的一些方法(一) 沧海


    1. 尽量不要在Cube里放太detail的数据,这种需求首先考虑R3用ABAP解决,如果非要在BW,可以考虑在DSO出明细报表,在Cube出汇总报表,通过RRI接口调用明细报表。关于RRI,请看:
    http://help.sap.com/saphelp_sm32/helpdata/en/99/08629bd3e41d418530c6849df303c9/content.htm

    2. 当Cube的数据量很大时,可以拆分成多个Cube, 再用MultiProvider拼起来,这样query会在N个Cube中并行,提高效率。 这就是所谓的逻辑分区。常见的分区方式有按年月,按国家,按BU,按类型等。

    3. 对于很大的Cube,可以做partition, 这是物理分区,只支持按时间分区。

    4. 使用Aggregation可以提高性能。但是Aggregation本身是cube的一个子集,提高性能的同时也加大了数据冗余,所以不要用太多。

    5. 使用BIA是比Aggregation更有效的方法,就是要花不少钱。

    6. 维度设计上,避免很多数据量很大char.放在一个维度上,因为这样会让维度表变得很大。通常,尽可能拆分成更多的维度,然后在 multiprovider层面,把相关的char都放一个维度里,然后做好Mapping,这样可以让用户更容易理解MultiProvider. 不过维度太多会导致fact table巨大,所以要做好平衡。

    7. 对于material等很大的主数据,使用Line item Dimension. 此类Dimension只可以有一个Char.

    8. 定期刷新DB Statistics 可以提高reporting的效率。

    9. 给Cube做Compression。 Compression 本质上是去掉Data Dimension,这样fact table就被压缩了,但是request id 也消失了,将无法通过request id去管理数据。

  • 相关阅读:
    Unity入门教程(上)
    牛课堂算法直播题目
    使用3ds Max制作简单卧室
    Aizu_Insertion Sort
    C语言中的循环语句练习
    3ds Max 中的导航控件SteeringWheels入门介绍
    3ds Max 中的导航控件ViewCube入门介绍
    容易出错的 if 语句
    计蒜客2018 蓝桥杯省赛 B 组模拟赛(一)
    浅谈图的广度优先遍历
  • 原文地址:https://www.cnblogs.com/omygod/p/2501091.html
Copyright © 2020-2023  润新知