在DAX中使用整个表时,性能总是很差吗

  • 本文关键字:性能 DAX powerbi dax
  • 更新时间 :
  • 英文 :


所以我读到使用表名会导致表扩展,从而导致性能下降。

我知道在FILTER中使用表名时可能会发生这种情况。但是,如果我在REMOVEFILTERS中使用表名,那么这是否也会导致表扩展/性能不佳?

否,当您使用REMOVEFILTERS时,DAX引擎只标记要从中删除所有过滤器的扩展表,仅此而已,这不会对性能产生任何影响。

在基本计算中引用表名是可以的——当嵌套迭代器并且行上下文中有复杂的代码时,就会出现问题,而且如果每个迭代器的基数都很高,那么在大多数情况下,DAX引擎所要做的就是将整个表以数据缓存的形式具体化到内存中,公式引擎稍后将在数据缓存上进行迭代。

巨大的物化表是一个大问题,因为Vertipaq的体系结构是为了减少RAM的使用,但物化表在内存中是未压缩的表,它们会消耗大量RAM。

如果您想自己创建用于测试的物化,请尝试使用SAMPLE或GROUBPY作为顶级函数,并使用DAX Studio来确认物化。

我的建议是,只要可能,总是使用一列,这样可以更快地扫描列/字典,更多的列将需要扫描列,然后连接它们。

最新更新