首页 > 解决方案 > 电源查询对小表发出数千次请求,刷新速度变慢

问题描述

我一直在excel中进行电源查询。最初我在本地使用工作簿中的数据。有来自 2 个不同工作簿的两个表,实际上它们保存在 sharepoint 服务器上并经常更新。

自从我直接指向 sharepoint 中的文件以来,刷新速度从 10 到 15 秒显着减慢到现在的 3 分钟。我运行了在诊断选项卡中找到的跟踪,我可以看到:

DataMashup.Trace Information: 24579 : {"Start":"2020-07-14T08:51:05.4427213Z","Action":"Engine/IO/Web/Request/GetResponse","ResourceKind":"Web","ResourcePath":"https://name_of_org/sites/mysite/_api/web/getfilebyserverrelativeurl('/sites/mysite/Shared%20Documents/a/b/c/d/e/myfile.xlsx')/$value","HostProcessId":"8072","RequestMethod":"GET","RequestUri":"https://name_of_org/sites/mysite/_api/web/getfilebyserverrelativeurl('/sites/mysite/Shared Documents/a/b/c/d/e/myfile.xlsx'')/$value","RequestHasContent":"False","RequestHasHeaders":"False","RequestHasTimeout":"True","UseCache":"True","UseBuffer":"True","ResponseStatusCode":"200","ResponseContentLength":"334883","ProductVersion":"2.78.5740.481 (20.02)","ActivityId":"8e2fd66c-43f4-4e6b-921f-e29e0585baf8","Process":"Microsoft.Mashup.Container.Loader","Pid":14640,"Tid":1,"Duration":"00:00:00.0021930"}

这被尝试了~12k 次。对于一个总共有大约 1000 个单元格的表格。为什么会发生此操作,如何使其仅检索一次。

在我的查询中,对表的引用是由:

= Table.AddColumn(#"Changed Type1", "test", (Q1) => Table.SelectRows(test_query, each (Q1[c] = [c1] or Q1[c] = [c2]) and [condition]="ok") )

其中“test”是从 excel 加载的表,存储在 sharepoint 站点上并转换

启用快速加载

数据预览已禁用

忽略隐私设置已启用

标签: excelpowerbitracepowerquery

解决方案


我想,我设法找到了问题的根源。自定义添加列公式正在调用每个行项目的在线共享点。我通过进入高级编辑器并添加缓冲表并在此查询中引用缓冲表来解决此问题。

这将时间从 600 秒缩短到大约 9 秒。

test_query = Table.Buffer(test_query_toBuffer)

推荐阅读