Powerbi 消除Power BI中重复的存储引擎查询

Powerbi 消除Power BI中重复的存储引擎查询,powerbi,dax,powerbi-desktop,daxstudio,Powerbi,Dax,Powerbi Desktop,Daxstudio,请参阅随附的Power BI模型文件。我有一个活动表,我想在一个折线图上画出X轴日期前365天内活跃的用户数 因此,我创建了一个日期表,但它与此无关,因为此表的目的仅用于X轴或日期筛选,并且所有指标都是在计算日期前365天计算的 下面的DAX公式有效,但如果在DAX Studio中进行分析,则X轴中的每个日期都有一个存储引擎查询。这在我的实际模型文件中是非常慢的,我正在寻找帮助来优化它 Active Users = var latestDate = MAX('Calendar'[Date])

请参阅随附的Power BI模型文件。我有一个活动表,我想在一个折线图上画出X轴日期前365天内活跃的用户数

因此,我创建了一个日期表,但它与此无关,因为此表的目的仅用于X轴或日期筛选,并且所有指标都是在计算日期前365天计算的

下面的DAX公式有效,但如果在DAX Studio中进行分析,则X轴中的每个日期都有一个存储引擎查询。这在我的实际模型文件中是非常慢的,我正在寻找帮助来优化它

Active Users = 
var latestDate = MAX('Calendar'[Date])
RETURN
CALCULATE(
    DISTINCTCOUNT('Activity Details'[Group User ID]),
    ALL('Calendar'[Date]),
    'Activity Details'[Event Date] <= latestDate,
    'Activity Details'[Event Date] >= (latestDate - 365)
)
活动用户=
var latestDate=MAX('日历'[日期])
返回
算计(
DISTINCTCOUNT('活动详细信息'[组用户ID]),
全部(‘日历’【日期】),
“活动详细信息”[活动日期]=(最晚日期-365)
)
编辑

下面的DAX公式只查询存储引擎一次,但在公式引擎中花费的时间要多得多

Active Users = 
var latestDate = MAX('Calendar'[Date])
RETURN
CALCULATE(
    SUMX(
        SUMMARIZE(
            'Activity Details', 'Activity Details'[Group User ID],
            "Last Event", MAX('Activity Details'[Event Date])
        ),
        1
    ),
    ALL('Calendar'[Date]),
    'Activity Details'[Event Date] <= latestDate,
    'Activity Details'[Event Date] >= (latestDate - 365)
)
活动用户=
var latestDate=MAX('日历'[日期])
返回
算计(
萨姆克斯(
总结(
“活动详细信息”,“活动详细信息”[组用户ID],
“上次事件”,最大('活动详细信息'[事件日期])
),
1.
),
全部(‘日历’【日期】),
“活动详细信息”[活动日期]=(最晚日期-365)
)

它不是重复的。x轴上的每个日期都与测量中的不同日期范围相关联,因为x轴上的每一天
latestDate
都是不同的。我可以使用summary让Power BI只查询一次,但我不确定是否正确使用了结果数据,因为使用SUMX所用的时间大致相同,因此不会重复。x轴上的每个日期都与测量中的不同日期范围相关联,因为x轴上的
latestDate
每天都不同。我可以使用summary让Power BI只查询一次,但我不确定是否正确使用了结果数据,因为使用SUMX所用的时间大致相同