我有时写一个DAX公式,结果证明我的机器很重。它甚至可以占用超过10 GB的内存并阻止我的工作很长一段时间。 Excel在这一点上完全没有反应。
是否有暂停计算的选项,以便我可以在不关闭Excel文件的情况下重写公式?到目前为止,我所知道的唯一解决方案是从任务管理器关闭Excel,但后来我丢失了未保存的工作。
答案 0 :(得分:2)
我建议您尝试DAX Studio来制定并排查该措施。 DAX Studio是一个独立的工具和Excel插件,允许您使用语法突出显示,服务器计时,查询计划等查询Power Pivot(或SSAS)模型。在这种情况下,如果度量导致过多的资源使用并冻结您的机器,您可以在不崩溃Excel的情况下结束DAX Studio流程。如果您的度量很复杂,您可以将其分解为更小的部分,并在DAX Studio中输出结果以显示中间步骤。
下面显示的是一个带有两个过滤器的CALCULATE测量测试示例。该度量嵌入在DAX查询中,结果将是您在Power Pivot度量窗格中看到的单个值。
EVALUATE
ROW (
"Measure Result", CALCULATE (
COUNTROWS ( Registrations ),
'Vehicle Model'[Vehicle Year] = "2015",
'Vehicle Model'[Type] = "TRUCK"
)
)
您可以在SQLBI找到有关如何使用DAX Studio的资源。
答案 1 :(得分:0)
最好的想法是通过聚合(使用Power Query - Group By)减少模型中的数据,或者将数据拆分为不同的工作簿(例如,每年一个工作簿)。
这样做会减少计算所需的内存/ CPU,并且你的工作簿有望不会崩溃......
...否则
您可以将Power Pivot中的计算设置为手动模式(设计功能区>计算选项)。有了它,你可以建立你的措施等,而无需Power Pivot / Excel在每次更改时计算它们。
如果您在更改度量后有很多重要的数据透视表,这可能会导致Excel崩溃。安装OLAP数据透视表工具扩展(http://olappivottableextend.codeplex.com/) - 这允许您禁用在Power Pivot中更改内容时在数据透视表上发生的自动刷新。
编辑:
Powerpivot允许您取消在计算字段中进行的计算。在更改公式后按Enter键,可以使用Esc键停止计算。
措施中也不可能。
从您的评论中我会认为您的模型存在其他问题,并建议先检查一下......对于Powerpivot来说,100k行应该非常容易,并且不应该导致10gb的内存被吃掉。