Power query 为一个小 table 发出数千个请求,刷新速度变慢
Power query makes thousands of requests for a small table, slowing refresh
我一直在 excel 中进行电源查询。最初我在本地使用工作簿中的数据。有两个 table 来自 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。为什么会发生此操作我怎样才能让它只检索一次。
在我的查询中,对 table 的引用是:
= Table.AddColumn(#"Changed Type1", "test", (Q1) => Table.SelectRows(test_query, each (Q1[c] = [c1] or Q1[c] = [c2]) and [condition]="ok") )
其中“test”是从 excel 加载的 table 存储在共享点网站上并且 t运行sformed
启用快速加载
数据预览已禁用
忽略隐私设置已启用
我想我已经找到问题的根源了。自定义添加列公式正在为每个行项目调用在线共享点。我通过进入高级编辑器并添加缓冲 table 并在此查询中引用缓冲 table 来解决这个问题。
这将时间从 600 秒缩短到大约 9 秒。
test_query = Table.Buffer(test_query_toBuffer)
我一直在 excel 中进行电源查询。最初我在本地使用工作簿中的数据。有两个 table 来自 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。为什么会发生此操作我怎样才能让它只检索一次。
在我的查询中,对 table 的引用是:
= Table.AddColumn(#"Changed Type1", "test", (Q1) => Table.SelectRows(test_query, each (Q1[c] = [c1] or Q1[c] = [c2]) and [condition]="ok") )
其中“test”是从 excel 加载的 table 存储在共享点网站上并且 t运行sformed
启用快速加载
数据预览已禁用
忽略隐私设置已启用
我想我已经找到问题的根源了。自定义添加列公式正在为每个行项目调用在线共享点。我通过进入高级编辑器并添加缓冲 table 并在此查询中引用缓冲 table 来解决这个问题。
这将时间从 600 秒缩短到大约 9 秒。
test_query = Table.Buffer(test_query_toBuffer)