Ssas 作用域语句替代慢速交叉连接计数MDX

Ssas 作用域语句替代慢速交叉连接计数MDX,ssas,mdx,Ssas,Mdx,下面的MDX适用于我的目的,但速度非常慢。是否有范围声明?我想计算剩余的交叉连接联系人/购买组合,其合计金额为$>5000 叉积总共有290M行,但我不确定如何以不同的结构来提高性能。谢谢你的帮助 CREATE HIDDEN STATIC SET [Over 5K Plus Test 2] AS NONEMPTY (([Contact].[Contact ID].[Contact ID],[Fund Sold].[Fund Sold ID].[Fund Sold ID]), [Measur

下面的MDX适用于我的目的,但速度非常慢。是否有范围声明?我想计算剩余的交叉连接联系人/购买组合,其合计金额为$>5000

叉积总共有290M行,但我不确定如何以不同的结构来提高性能。谢谢你的帮助

 CREATE HIDDEN STATIC SET [Over 5K Plus Test 2] 
 AS NONEMPTY (([Contact].[Contact ID].[Contact ID],[Fund Sold].[Fund Sold ID].[Fund Sold ID]),
[Measures].[FA And Team Gross Sales with FAs Including All Vehicles]); 

CREATE MEMBER CURRENTCUBE.[Measures].[FA and Team Product Count]
AS COUNT(EXISTING((Filter([Over 5K Plus Test 2], [Measures].[FA And Team Gross Sales with FAs Including All Vehicles] >= 5000)))),

尝试此操作以避免筛选:

CREATE MEMBER CURRENTCUBE.[Measures].[FA and Team Product Count]
AS SUM(
 Existing [Contact].[Contact ID].[Contact ID].Members
 * Existing [Fund Sold].[Fund Sold ID].[Fund Sold ID].Members,
 IIF([Measures].[FA And Team Gross Sales with FAs Including All Vehicles] >= 5000, 1, Null)
);
如果仍然很慢,则将计算结果公布在
FA后面,并与包括所有车辆在内的FAs一起公布团队总销售额

要实现这一点,更有效的方法需要付出更多的努力,但性能会更好,因为它避免了现有的
功能。首先,您必须在DSV中创建一列,该列是事实表中使用以下表达式计算的列:

CAST(null as int)
然后在此列上创建一个名为“FA和团队产品计数”的新度量。展开列绑定并选择NullHandling=Preserve。这必须是一个物理度量,而不是一个计算度量,因为只有物理度量的作用域分配聚合起来

然后将以下语句添加到MDX脚本(而不是顶部提到的计算度量):

([Measures].[FA and Team Product Count],
 [Contact].[Contact ID].[Contact ID].Members,
 [Fund Sold].[Fund Sold ID].[Fund Sold ID].Members) =
 IIF([Measures].[FA And Team Gross Sales with FAs Including All Vehicles] >= 5000, 1, Null);