excel - 电源查询对小表发出数千次请求,刷新速度变慢
问题描述
我一直在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 站点上并转换
启用快速加载
数据预览已禁用
忽略隐私设置已启用
解决方案
我想,我设法找到了问题的根源。自定义添加列公式正在调用每个行项目的在线共享点。我通过进入高级编辑器并添加缓冲表并在此查询中引用缓冲表来解决此问题。
这将时间从 600 秒缩短到大约 9 秒。
test_query = Table.Buffer(test_query_toBuffer)
推荐阅读
- python - 如何在 Keras 中实现这种非全连接结构?
- c# - 消息:非静态方法需要一个目标。- 单元测试 C#
- oracle - 将所有用户表的读取权限授予oracle中的新用户
- google-analytics - 我添加了一个谷歌分析段来阻止两种不同类型的机器人流量。独特的综合浏览量现在在不同的 GA 页面上显示不同
- javascript - ReferenceError: self is not defined while using BoxCast API SDK of JavaScript
- css - 如何在材质 UI 选择组件中使用 flexbox?
- reactjs - 我有一个需要向其传递数据的函数,如何传递参数?
- java - Tomcat在负载下响应时间慢
- excel - VBA捕获链接单元格的目标
- hapi-fhir - 如何仅使用电信作为查询字符串从 EPIC FHIR 获取患者记录