代码之家  ›  专栏  ›  技术社区  ›  Dave Bauman

SSAS中计算成员的绩效影响

  •  4
  • Dave Bauman  · 技术社区  · 16 年前

    我想知道在多维数据集中添加大量计算成员是否会影响性能。一方面,最好只定义一次,集中定位,测试,并且可以从任何不支持MDX的客户机上使用。另一方面,我要添加的一些成员可能不会经常使用,所以我可以将它们嵌入到可能需要它们的一个或两个报告中。

    除了有不必要的成员挂在旁边的混乱之外,我应该尽可能少地保留计算成员的数量吗?更多会增加多维数据集处理时间吗?他们会减慢不使用这些计算成员的查询速度吗?

    2 回复  |  直到 16 年前
        1
  •  10
  •   Eric    16 年前

    计算成员对处理或其他查询几乎没有影响。想加多少就加多少!

    原因是它们只是在多维数据集上定义的,但实际上是经过评估的 在运行时 . 因此,只有使用它们的查询才会减慢或受其影响。因此,也希望它们返回的速度比本机成员慢一点。

    如果经常使用计算成员,请寻找使其成为多维数据集的实际部分的每个机会。同时,学习并热爱 scope 语句。当一个计算成员 范围 d仍然在运行时计算,即 范围 语句为它提供了一个现成的执行计划,因此它往往更快。我通常会在DSV中创建一个成员,然后 范围 它是为我的高容量计算成员。

        2
  •  0
  •   Jason Horner    16 年前

    任何时候您可以将计算推回到关系模型中,它都会提高MDX查询性能,但也会对处理性能产生负面影响。

    如果可以使用行内SQL逻辑预先计算一些度量值,那么在数据源视图中将这些度量值公开为度量值。存储引擎可以生成聚合,公式引擎将有较少的工作要做。您基本上是将繁重的工作向下推到SQL。这对于静态计算和转换因子以及简单的算术等非常有效。

    您可以做的另一件事是创建任何中间计算成员,这些成员不应被最终用户用作隐藏成员,这不会对性能产生任何影响;但会从最终用户的角度消除多维数据集的混乱。

    推荐文章