Power query выполняет тысячи запросов для небольшой таблицы, замедляя обновление - PullRequest
1 голос
/ 14 июля 2020

Я делал запрос мощности в excel. Изначально я использовал данные из книги локально. Есть две таблицы из двух разных книг, которые на практике хранятся на сервере sharepoint и обновляются время от времени.

С тех пор, как я указал непосредственно на файл в sharepoint, refre sh резко замедлился, начиная с 10-15 секунд до 3 минут. Я запустил трассировку, найденную на вкладке Diagnosti c, и вижу:

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 и преобразованная

Быстрая загрузка включена

Предварительный просмотр данных отключен

Включен игнорирование настроек конфиденциальности

1 Ответ

0 голосов
/ 11 августа 2020

Думаю, мне удалось разобраться в проблеме. Формула настраиваемого столбца добавления обращалась к точке доступа в Интернете для каждой позиции. Я решил эту проблему, перейдя в расширенный редактор и добавив буферизованную таблицу и вместо этого сославшись на буферизованную таблицу в этом запросе.

Это сократило время с 600 до 9 с.

test_query = Table.Buffer(test_query_toBuffer)
...