Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Прежде чем читать эту статью, рекомендуется ознакомиться с обзором оценки запросов и свертывания запросов в Power Query , чтобы лучше понять, как свертка работает в Power Query.
Индикаторы свертывания запросов помогают понять, какие шаги сворачиваются, а какие нет.
При свертывании запросов индикаторы явно видно, когда вы вносите изменения, которые нарушают свертывание. Эта функция помогает более эффективно устранять проблемы, избежать возникновения проблем с производительностью и получить лучшее понимание ваших запросов. В большинстве случаев, с которыми вы сталкиваетесь, шаги складываются или не складываются. Но существует множество случаев, когда результат не так очевиден, и эти случаи рассматриваются в индикаторах диагностики шага (динамические, непрозрачные и неизвестные).
Замечание
Функция индикаторов свертывания запросов доступна только для Power Query Online.
Интерпретация диагностики свертывания запросов
При проверке индикатора свертывания запросов рядом с шагом важно понимать, что диагностический процесс не является последовательным. Другими словами, индикатор для этого шага описывает, выполнен ли запрос в целом до данной точки. Если у вас есть индикатор, показывающий, что запрос не сворачивается, следом за ним появляется индикатор, показывающий, что запрос сворачивается, это означает, что запрос до этого момента сворачивается.
Эта интерпретация работает даже с простым запросом к источнику SQL. Например, используя пример базы данных AdventureWorks, подключитесь к таблице Production.Product и загрузите данные. Загрузка этого примера с помощью навигатора Power Query дает следующий запрос:
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
Navigation
Если проверить, как этот код отображается в индикаторах сворачивания запросов, обратите внимание, что первый шаг является неопределённым. Но второй шаг действительно складывается, что значит, что запрос до этой точки также складывается.
В этом примере начальные шаги не могут быть подтверждены как свернутые (неокончательный результат), но последний шаг, сформированный при первоначальной загрузке данных, действительно сворачивается. Как обрабатываются первые шаги (источник, а иногда и другие действия навигации ) зависят от соединителя. Например, при использовании SQL шаг обрабатывается как значение таблицы каталога, которое не сворачивается. Однако как только вы выбираете данные для этого соединителя, он сворачивается.
И наоборот, это указание также может означать, что ваш запрос сворачивается до определенной точки, а затем останавливает сворачивание. В отличие от случая, когда у вас есть индикатор сворачивания для шага, показывающий, что все сворачивается, наличие индикатора отсутствия сворачивания не означает, что ничего не сворачивается. Вместо этого это означает, что "не все" складывается. Обычно всё складывается до последнего индикатора складывания, а больше операций происходит после.
Изменив предыдущий пример, можно дать преобразование, которое никогда не изменяется—С заглавной буквы каждое слово.
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
#"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
#"Capitalized each word"
В индикаторах свертывания запросов у вас есть те же индикаторы, что и ранее, за исключением того, что последний шаг не свертывается. Все до этого окончательного шага выполняется в источнике данных, а последний шаг выполняется локально.
Индикаторы диагностики шагов
Индикаторы свертывания запросов используют базовый план запроса и требуют, чтобы он мог получить сведения о запросе, чтобы сообщить о нем. В настоящее время план запроса поддерживает только таблицы, поэтому в некоторых случаях (списки, записи, примитивы) не указывается, является ли это сложением или нет. Аналогичным образом, постоянные таблицы считаются непрозрачными.
| Индикатор | Иконка | Описание |
|---|---|---|
| Складывание |
|
Индикатор сворачивания указывает, что источник данных обрабатывает запрос на этом этапе. |
| Не сворачивать |
|
Индикатор не свертывания сообщает, что некоторые части запроса до этого шага оцениваются за пределами источника данных. Вы можете сравнить его с последним индикатором складывания, если он есть, чтобы узнать, можно ли изменить порядок запроса для повышения производительности. |
| Может свернуться |
|
Могут сложить индикаторы редко. Они хотят сказать, что запрос может "свернуться". Они указывают на то, что выбор между свертыванием и несвертыванием определяется во время выполнения, при извлечении результатов из запроса, и что план запроса носит динамический характер. Эти индикаторы, скорее всего, отображаются только с подключениями ODBC или OData. |
| непрозрачные |
|
Непрозрачные индикаторы свидетельствуют о том, что полученный план запроса является неопределённым по какой-то причине. Как правило, это означает, что существует истинная "константная" таблица или что индикаторы и средство плана запросов не поддерживает это преобразование или соединитель. |
| Неизвестный |
|
Неизвестные индикаторы представляют отсутствие плана запроса из-за ошибки или попытки выполнить оценку плана запроса на нечто отличное от таблицы (например, записи, списка или примитива). |
Пример анализа
Для примера анализа сначала подключитесь к таблице Production.Product в Adventure Works (SQL). Начальная загрузка, аналогичная первоначальному примеру, выглядит следующим образом.
Добавление дополнительных складывающихся шагов расширяет зеленую линию с правой стороны. Это расширение происходит, потому что этот шаг тоже складывается.
Добавление шага, который не сворачивающийся, отображает другой индикатор. Например, С заглавной буквы каждое слово никогда не сворачивается. Индикатор изменяется, показывая, что на этом шаге он перестал сворачиваться. Как уже упоминалось ранее, предыдущие шаги по-прежнему выполняются.
Добавление большего количества последующих шагов, зависящих от Прописных букв в названиях шагов, по-прежнему не приводит к сворачиванию.
Тем не менее, если удалить столбец, к которому применена капитализация текста, чтобы оптимизированный план запросов смог объединить все снова, вы получите результат, как показано на следующем рисунке. Тем не менее, такое происходит редко. На этом изображении показано, как это не только порядок шагов, но и фактические преобразования, которые применяются.