zoukankan      html  css  js  c++  java
  • 提高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去管理数据。

  • 相关阅读:
    WPF 中英文切换
    System.Data.Entity.Core.ProviderIncompatibleException:0x89c50107
    WinForm使用原生gdi+绘制自定义曲线图、折线图
    C#使用EPPlus读写excel
    ICSharpCode.SharpZipLib C# 压缩文件夹SharpZipHelper
    C# XSLT 转换word 生成word
    代码生成器集合
    优秀的个人博客
    面试经典复习资料
    图解算法
  • 原文地址:https://www.cnblogs.com/omygod/p/2501091.html
Copyright © 2011-2022 走看看