Powerquery для SQL с использованием значения ячейки в качестве параметра очень медленно - PullRequest
0 голосов
/ 24 марта 2019
Сценарий

:


Запуск листа XL с использованием одного powerquery для извлечения данных с сервера SQL.Полученный набор данных используется в двух подзапросах.Все три набора данных затем загружаются в сводные таблицы на листе XL.

цель:


Отправка запроса с использованием 2 параметров, извлеченных из листа XL, что уменьшает размервозвращенного набора данных.Сворачивание запроса обратно на SQL-сервер, а не фильтрация после получения в PQ.

описание проблемы:


, если я использую приведенную ниже конфигурацию для основногоquery:

let
    dbQuery = "SELECT * FROM dbo.somequery",
    Source = Sql.Database("<server>", "<database>", [Query=dbQuery])
in
    Source

Это работает нормально и возвращает около 6500 строк почти мгновенно.

Следующая функция определена как 'GetRange' в PQ для получения значения ячейки:

(rangeName) => 
    Excel.CurrentWorkbook(){[Name=rangeName]}[Content]{0}[Column1]

Два параметра извлекаются с использованием приведенного ниже синтаксиса для каждого:

= GetRange("<named cell>")

Если я теперь изменю dbQuery на:

dbQuery = "SELECT * FROM dbo.xlPAS_PivotOutput 
           WHERE parameter1=" & Text.From(parameter1) & " and parameter2=" & Text.From(parameter2),

Запрос компилируется, и результаты возвращаются, но Excel PQ занимает около 1-2 минут, чтобы на самом деле вернуть значение?Похоже, что простой поиск значений 2 ячеек и использование их в качестве входных параметров по какой-то причине требует огромных усилий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...