我有一个事实表和维度表,看起来像这样

​Fact {DateKey,UserKey,ActionKey,Action Count}

我有一个用户维度表,看起来像这样

DimUser {UserKey,Name,IsActive}

和一个看起来像这样的日期维度表

DimDate { DateKey, Week, Year}

我在基于事实表的度量组的DateKey列上有一个物理上不同的计数度量.lets称之为“DATE COUNT”

现在我想要一个名为“DAILY ACTIVE USERS”的计算度量,看起来像这样

[IsDailyActive] = IIF([Measures].[DATE COUNT] >= 21, 1, 0)

[Daily Active Users] = SUM([Dim User].[User Key].[User Key].Members, [Measures].[IsDailyActive])

还有另一种方法来解决这个问题,没有使用如下的物理不同计数测量

[HasAction] = IIF([Measures].[Action Count] > 1, 1, 0)

[DATE COUNT] = SUM([Dim Date].[DATE KEY].[DATE KEY].Members, [Measures].[HasAction])

[IsDailyActive] = IIF([Measures].[DATE COUNT] >= 21, 1, 0)

[Daily Active Users] = SUM([Dim User].[User Key].[User Key].Members, [Measures].[IsDailyActive])

但我担心计算的测量值会慢于在处理时而不是在查询时计算的物理非重复计数测量值 . 任何想法会更好的表现?我的事实表有十亿行!