【发布时间】:2015-01-18 06:10:18
【问题描述】:
我有 2 个查找表;成员(83,000 行)和组(2,500 行)。
有 2 个事实表; GroupMembers(190,000 行)和 Metrics(650,000 行)。
我创建了两个独立的模型:
1. Members, Groups and GroupMembers
2. Members, Groups and Metrics
两种模型在事实表 (COUNTROWS) 上只有一个计算度量。如果我在行中引入成员>成员 ID,并在组>组 ID 上进行过滤,则使用 CountRows 作为值;模型 2 执行速度非常快,而模型 1 非常慢。
这是 DAX 查询结果。
型号 1:
模型 2:
两个事实表之间的唯一区别是 GroupMembers 只有 Groups 和 Members 的唯一组合,而 Metrics 表有其他列,因此 Groups 和 Members 组合不是唯一的。
这两个 excel 文件都可以在这里找到:http://1drv.ms/1GdK1WK
请帮忙!
[编辑] 我做了一些进一步的测试,发现如果我在 GroupMembers 中复制数据(即两次加载相同的 190,000 行,因此 GroupID/UserID 组合不是唯一的),性能非常好。去搞清楚! :)
我正在向 MS 开一个支持案例,并将更新此线程。
【问题讨论】:
-
那是什么接口?
-
当你说你添加了两次,你的意思是你“取消透视”你的数据,所以你有更多的行和更少的列?
-
Petr,你问的是我发布的图片。那就是 SQL Server Profiler。如果从 PowerPivot 选项卡 > 设置窗口中“为当前 Excel 会话启用 PowerPivot 跟踪”,它将创建一个可以在 SQL Server Profiler 中打开的跟踪文件。
-
Jacob,不,不取消。我做了一个 UNION ALL,这样每一行都被添加了两次。
标签: excel powerpivot dax