我有一个看起来像这样的事实表和维度表
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])
但我担心计算的测量值会慢于在处理时而不是在查询时计算的物理非重复计数测量值。任何想法会更好的表现?我的事实表有十亿行!