Ssas 作用域语句替代慢速交叉连接计数MDX
下面的MDX适用于我的目的,但速度非常慢。是否有范围声明?我想计算剩余的交叉连接联系人/购买组合,其合计金额为$>5000 叉积总共有290M行,但我不确定如何以不同的结构来提高性能。谢谢你的帮助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
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);