关于dax和可视化对象加载的性能优化方面
某页面数据加载很慢整体数据25万行单大平表
在powerbi性能分析器中分析发现某表最慢需要24秒
复制出该表的查询到daxstudio中发现其他筛选器(9个自建的自由筛选维度,14个度量值计算字段)会在summarizecolumns中分组计算,但实际用到全部外部筛选的可能只有两个度量值,其余度量值可能仅仅用到两三个筛选,那其余度量值的分组计算是不是属于性能浪费?
需要优化的话,优化方向就是减少自定义的筛选器数量(可以改用书签等操作),减少拖拽的计算字段?
那还有没有别的方向可以优化速度
// DAX Query
DEFINE
VAR __DS0FilterTable =
FILTER(KEEPFILTERS(VALUES('日期粒度参数'[日期粒度参数])), '日期粒度参数'[日期粒度参数] = 7)
VAR __DS0FilterTable2 =
TREATAS({"现金消费"}, '价值维度'[维度])
VAR __DS0FilterTable3 =
FILTER(KEEPFILTERS(VALUES('价值尺度1'[价值尺度1])), '价值尺度1'[价值尺度1] <= 500)
VAR __DS0FilterTable4 =
FILTER(
KEEPFILTERS(VALUES('价值尺度2'[价值尺度2])),
AND('价值尺度2'[价值尺度2] >= 1, '价值尺度2'[价值尺度2] <= 200)
)
VAR __DS0FilterTable5 =
FILTER(KEEPFILTERS(VALUES('日期粒度参数2'[日期粒度参数2])), '日期粒度参数2'[日期粒度参数2] = 30)
VAR __DS0FilterTable6 =
TREATAS({"签约"}, '价值维度2'[维度])
VAR __DS0FilterTable7 =
TREATAS({"绝对日期"}, '日期智能选择'[日期智能选择])
VAR __DS0FilterTable8 =
FILTER(
KEEPFILTERS(VALUES('日期表'[日期])),
AND('日期表'[日期] >= DATE(2020, 5, 1), '日期表'[日期] < DATE(2020, 6, 1))
)
VAR __DS0FilterTable9 =
TREATAS({"搜索词"}, '关键词/搜索词切片'[词维度选择])
VAR __ApplyFilterSQDS0 =
TOPN(
10,
SUMMARIZECOLUMNS(
'词'[词],
__DS0FilterTable,
__DS0FilterTable2,
__DS0FilterTable3,
__DS0FilterTable4,
__DS0FilterTable5,
__DS0FilterTable6,
__DS0FilterTable7,
__DS0FilterTable8,
__DS0FilterTable9,
"资源", '度量值'[资源]
),
[资源],
0
)
EVALUATE
TOPN(
502,
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL('词'[词], "IsGrandTotalRowTotal"),
__DS0FilterTable,
__DS0FilterTable2,
__DS0FilterTable3,
__DS0FilterTable4,
__DS0FilterTable5,
__DS0FilterTable6,
__DS0FilterTable7,
__DS0FilterTable8,
__DS0FilterTable9,
__ApplyFilterSQDS0,
"现金消费", '度量值'[现金消费],
"展现", '度量值'[展现],
"点击", '度量值'[点击],
"资源", '度量值'[资源],
"签约", '度量值'[签约],
"签约额", '度量值'[签约额],
"点击率", '度量值'[点击率],
"点击均价", '度量值'[点击均价],
"成本", '度量值'[成本],
"产出", '度量值'[产出],
"前期筛选", '度量值'[前期筛选],
"后期筛选", '度量值'[后期筛选],
"单笔", '度量值'[单笔],
"转化率", '度量值'[转化率],
"筛选变动", '度量值'[筛选变动],
"条件格式背景颜色筛选变动", IGNORE('度量值'[条件格式背景颜色筛选变动])
),
[IsGrandTotalRowTotal],
0,
[现金消费],
0,
'词'[词],
1
)
ORDER BY
[IsGrandTotalRowTotal] DESC, [现金消费] DESC, '词'[词]