打开Power BI desktop,在Power Query Editor的页面,点中Queries里面的一张数据表,右键会看到Enable Load和Include in report refresh.
Include in report refresh,当Power BI中的table被勾选中✔之后,power bi desktop里面点击refresh,report就会自动刷新这个table。默认情况下是勾选中的。如果已知有的表table是没有更新的(数据量又很大),我们不想在power bi desktop的refresh中包含这个表table,可以把✔去掉。这样在power bi desktop端的refresh就不包含这个表table。目前在power bi server端是没有实现不要refresh某个table的功能的。
https://ideas.powerbi.com/ideas/idea/?ideaid=c464fb1a-25e4-4c93-ba72-288a6ff12127
这里强调一下,在Power Query Editor部分没有再做表table方面的修改,然后勾选掉Include in report refresh,之后Close & Apply,去掉勾选✔的表table是不会再更新refresh的,但是如果你的表table方面做了修改的,比如去掉了勾选✔Enable Load,并且也去掉了勾选✔Include in report refresh,当Close & Apply的时候,表table还是会更新refresh的。
顺带提一下而已,本文主要是讲合理使用Enable Load来提高Power BI的性能。默认情况下Enable Load是勾选上的,如果去掉这个勾选✔,相关的表table还是会refresh数据的,但是这个表table不会存储数据在内存中,这样就会减少内存的消耗,进而提高报表的性能。
什么情况下选择Enable Load呢?
如果对于表table来说,只是作为data source的一个生成过程,而不是最终要面向用户使用的table,就可以Enable Load。比如Merge或者Append出一个new query table,那原始的table就可以去掉Enable Load的勾选,还有比如reference。我们最终给用户看到的是reference出来的表table而不是原始的表table,就可以把原始的表table的Enable Load勾选去掉。
如下图所示,在View->Query Dependencies里面可以看到,这个Power bi desktop中有多个数据源,相关性如下图,但是只有四个表是最终展示给用户的,设置成了Loaded,其他的都是Load disabled的。
当点中table,右键去掉默认的Enable Load的勾选✔时,会提示如下内容。
看提示也能基本明白,就是如果你把这个表table Enable Load去掉了,那如果报表中有用到这个表table的字段,就会出错误。
没毛病啊,因为如果去掉勾选✔Enable Load,这个表就不会出现在power BI的字段页面了。那当然,如果页面用到这个表table的字段就找不到了。
请注意,表table如果Enable Load勾选✔去掉了,相对应的表table名称会变成斜体的。参考如下:
去掉勾选Enable Load之后,Close & Apply或者就是点refresh,可以看到以下内容。只有四张表被refresh了。
如果不勾选掉Enable Load呢?总共有十二个queries(包含两个function,十个表table)。表table都不是斜体的名字哦~~
refresh之后会刷新10个表table。
这样是不是很直观的理解减少内存的消耗了呢~~
之前也提到了reference。一样的呦~~
并且,Enable Load去掉勾选之后,Close & Apply之后,这个表table是不显示在Report Page页的。不用单独去隐藏hide那些对于用户来说没有用的表table了。
很不错吖~~
在report page页没有去掉勾选的表table。(带计算器的表是DAX写出来的表)
此处呼应那个Warning哦。
参考学习的文章链接如下:
https://radacad.com/performance-tip-for-power-bi-enable-load-sucks-memory-up
谢谢关注。又是精神饱满的一天吖~~