我有2个查找表;成员(83,000行)和组(2,500行)。
有2个事实表; GroupMembers(190,000行)和Metrics(650,000行)。
我创建了两个独立的模型:
1. Members, Groups and GroupMembers
2. Members, Groups and Metrics
两个模型在事实表(COUNTROWS)上只有一个计算度量。如果我引入会员>会员ID在行上并过滤群组> GroupID,则使用CountRows作为值;模型2执行超快,模型1非常慢。
以下是DAX查询结果。
模型1:
模型2:
两个事实表之间的唯一区别是GroupMembers只有Groups和Members的唯一组合,而Metrics表有其他列,因此Groups和Members组合不是唯一的。
这两个excel文件都可以在这里找到:http://1drv.ms/1GdK1WK
请帮忙!
[编辑] 我做了一些进一步的测试,发现如果我复制GroupMembers中的数据(即两次加载相同的190,000行,因此GroupID / UserID组合不是唯一的),性能很好。去搞清楚! :)
我正在与MS打开一个支持案例并将更新此帖子。
答案 0 :(得分:0)
来自Microsoft支持团队;显然,UserID int值对于查询来说太大了。他们给了我一个解决方法来为用户表创建一个身份密钥列,并将其用作Users和UserGroups之间的关系。我将解决方法文件发布到OneDrive http://1drv.ms/1BEEmDJ
中的新文件夹中支持团队将与产品团队讨论根本问题,他们将调查大型int列导致性能问题的原因。