SSAS中计算成员的绩效影响

时间:2009-08-17 18:13:38

标签: ssas mdx cube

我想知道在我的多维数据集中添加大量计算成员是否会对性能产生影响。一方面,最好定义一次,集中定位,测试,并可从任何不支持MDX的客户端使用。另一方面,我添加的其中一些成员可能不会经常使用,因此我可以在一两个可能需要它们的报告中对它们进行内联。

除了让不必要的成员闲逛之外,我应该尽量减少计算成员的数量吗?是否会增加立方体处理时间?他们会减慢不使用这些计算成员的查询吗?

2 个答案:

答案 0 :(得分:10)

计算成员对处理或其他查询几乎没有影响。添加你想要的任意数量!

原因是它们只是在多维数据集上定义,但实际上是在运行时评估 。因此,唯一会被它们减慢或影响的查询是使用它们的查询。由于这个原因,期望它们比原生成员慢一点。

如果频繁使用,请查找每个机会使计算成员成为多维数据集的实际部分。此外,学习并喜欢scope声明。虽然仍然在运行时计算了scope d的计算成员,但scope语句为其提供了现成的执行计划,因此它往往更快。我经常在DSV中创建一个成员,然后scope为我的高容量计算成员创建一个成员。

答案 1 :(得分:0)

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

如果您可以使用行内SQL逻辑预先计算某些度量,那么在数据源视图中将这些度量公开为度量。存储引擎可以构建聚合,而公式引擎将需要做的工作量更少。你基本上把繁重的工作推向了sql。这非常适用于静态计算和转换因子以及简单算术等等。

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