Диагностика запросов

С помощью диагностики запросов вы можете лучше понять, что делает Power Query при разработке и во время обновления в Power BI Desktop. Хотя мы будем расширять эту функцию в будущем, включая возможность ее использования во время полного обновления, в настоящее время вы можете использовать ее, чтобы понять, какой тип запросов вы создаете, какие замедления могут возникнуть во время обновления разработки и какие фоновые события происходят.

Чтобы использовать диагностику запросов, перейдите на вкладку Сервис на ленте редактора Power Query.

Диагностика запросов.

По умолчанию для выполнения диагностики запросов могут потребоваться права администратора (в зависимости от ИТ-политики). Если вы не можете запустить диагностику запросов, откройте страницу параметров Power BI и на вкладке Диагностика выберите Включить в Редактор запросов (не требуется запуск от имени администратора). Этот выбор ограничивает возможность трассировки диагностики при выполнении полного обновления в Power BI, а не в редакторе Power Query, но позволяет по-прежнему использовать его при предварительном просмотре, разработке и т. д.

Параметры диагностики запросов.

Всякий раз, когда вы начинаете диагностику, Power Query начинает трассировку любых оценок, которые вы вызываете. Большинство пользователей думают об оценке при нажатии кнопки refresh или при первом получении данных, но существует множество действий, которые могут привести к оценке в зависимости от соединителя. Например, при использовании соединителя SQL, когда вы извлекаете список значений для фильтрации, это также запускает оценку, но не связывается с запросом пользователя и представлено в диагностике. Другие системные запросы могут включать в себя навигатор или процесс получения данных.

При нажатии кнопки Диагностика шага Power Query выполняет специальную оценку только того шага, который вы просматриваете. Затем отобразится диагностика для этого шага без диагностики для других шагов в запросе. Это может значительно упростить получение узкого представления о проблеме.

Важно, чтобы при записи всех трассировок из меню Начать диагностику нажмите кнопку Остановить диагностику. Остановка диагностики позволяет подсистеме собирать записанные трассировки и анализировать их в правильные выходные данные. Без этого шага вы потеряете трассировки.

Типы диагностики

В настоящее время мы предоставляем три типа диагностики, один из которых имеет два уровня детализации.

Первая из этих диагностик является основной диагностикой, которая содержит подробное представление и сводное представление. Сводное представление предназначено для получения немедленного представления о том, на что тратится время на выполнение запроса. Подробное представление гораздо глубже, построчно, и, как правило, требуется только для серьезной диагностики опытными пользователями.

В этом представлении некоторые возможности, такие как столбец "Запрос к источнику данных", в настоящее время доступны только в определенных соединителях. Мы будем работать над расширением охвата в будущем.

Секции конфиденциальности данных позволяют лучше понять логические секции, используемые для обеспечения конфиденциальности данных.

Примечание

Power Query могут выполнять оценки, которые, возможно, не были активированы напрямую. Некоторые из этих вычислений выполняются для извлечения метаданных, чтобы мы могли оптимизировать запросы или улучшить взаимодействие с пользователем (например, получить список различных значений в столбце, которые отображаются в интерфейсе фильтрации строк). Другие могут быть связаны с тем, как соединитель обрабатывает параллельные оценки. В то же время, если вы видите в диагностике запросов повторяющиеся запросы, которые, по вашему мнению, не имеет смысла, вы можете связаться с обычными каналами поддержки. Ваш отзыв — это то, как мы улучшаем наш продукт.

Сводные и подробные представления

Диагностика запросов предоставляет два представления: сводные и подробные. Сводное представление "сворачивает" несколько связанных операций в одну операцию. В этом процессе сведения, собранные каждой операцией, объединяются, и суммируются эксклюзивные длительности. В рамках этого процесса никакие сведения не теряются.

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

Объяснение нескольких оценок

При обновлении в редакторе Power Query многое сделано в фоновом режиме, чтобы сделать вас более понятным. Например, при обновлении предварительной версии средство оценки выполнит последний шаг каждого заданного запроса. Но затем в фоновом режиме последовательно выполняется n-1 шагов, n-2, шагов и т. д., так что, если вы выполните шаг назад, они уже доступны.

Чтобы обеспечить более высокую производительность, в настоящее время выполняется кэширование, чтобы не выполнять каждую часть окончательного плана запроса по мере выполнения шагов. Хотя это кэширование полезно для обычной разработки, это означает, что вы не всегда получите правильные сведения о сравнении шагов из-за последующих вычислений, которые будут извлекать кэшированные данные.

Схема диагностики

Идентификатор

При анализе результатов записи важно отфильтровать сеанс записи по идентификатору, чтобы столбцы, такие как монопольная длительность %, были целесообразными.

Id — это составной идентификатор. Он формируется из двух чисел: до точки и после. Первое число одинаково для всех оценок, полученных в результате действия одного пользователя. Иными словами, если дважды нажать кнопку обновить, перед точкой будет два разных числа, по одному для каждого действия пользователя. Эта нумеровка является последовательной для данной записи диагностики.

Второе число представляет оценку подсистемы. Это число является последовательным в течение времени существования процесса, в котором оценка помещается в очередь. Если вы запускаете несколько сеансов записи диагностики, вы увидите, что это число продолжает расти в разных сеансах.

Таким образом, если вы начнете запись, один раз нажмите вычисление и остановите запись, у вас будет некоторое количество идентификаторов в диагностике. Но так как вы выполнили только одно действие, все они будут 1.1, 1.2, 1.3 и т. д.

Сочетание activityId и evaluationId, разделенное точкой, предоставляет уникальный идентификатор для оценки одного сеанса записи.

Запрос

Имя запроса в левой области редактора Power Query.

Шаг

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

Категория

Категория операции.

Тип источника данных

Это указывает, к какому источнику данных вы обращаетесь, например SQL или Oracle.

Операция

Фактическая выполняемая операция. Эта операция может включать в себя работу средства оценки, открытие подключений, отправку запросов к источнику данных и многое другое.

Время начала

Время начала операции.

Время окончания

Время завершения операции.

Монопольная длительность (%)

Столбец Монопольная длительность события — это время активности события. Это контрастирует со значением "длительность", которое является результатом вычитания значений в столбцах Время начала и Время окончания события. Это значение "длительность" представляет общее время, прошедшее между началом события и его кончиной, которое может включать время, когда событие находилось в приостановленном или неактивном состоянии, а другое событие потребляло ресурсы.

Процент монопольной длительности составляет примерно 100 % в рамках заданной оценки, как представлено столбцом Id. Например, если выполнить фильтрацию по строкам с идентификатором 1.x, проценты монопольной длительности будут суммироваться примерно до 100 %. Это не так, если суммирование значений исключаемой длительности для всех строк в данной диагностической таблице.

Исключительная длительность

Абсолютное время, а не % исключительной длительности. Общая длительность (т. е. монопольная длительность и время, когда событие было неактивным) оценки можно вычислить одним из двух способов:

  • Найдите операцию с именем "Оценка". Разница между временем окончания и временем начала приводит к общей продолжительности события.

  • Вычитает минимальное время начала всех операций в событии из максимального времени окончания. Обратите внимание, что в случаях, когда сведения, собранные для события, не учитывают общую продолжительность, создается операция под названием "Трассировка пробелов" для учета этого интервала времени.

Ресурс

Ресурс, к который вы обращаетесь для получения данных. Точный формат этого ресурса зависит от источника данных.

Запрос к источнику данных

Power Query выполняет так называемую свертывание, то есть выполняет как можно больше частей запроса к внутреннему источнику данных. В режиме прямого запроса (Power Query), где этот параметр включен, будут выполняться только преобразования, которые будут выполняться. В режиме импорта преобразования, которые невозможно свернуть, будут выполняться локально.

Столбец Запрос источника данных позволяет просмотреть запрос или HTTP-запрос или ответ, отправленный к внутреннему источнику данных. При создании запроса в редакторе будет отправляться множество запросов к источнику данных. Некоторые из них являются фактическим окончательным запросом источника данных для отрисовки предварительного просмотра, но другие могут быть для профилирования данных, раскрывающихся списков фильтров, сведений о соединениях, получения метаданных для схем и любого количества других небольших запросов.

Как правило, вы не должны беспокоиться о количестве запросов источника данных, если нет конкретных причин для беспокойства. Вместо этого следует сосредоточиться на извлечении нужного содержимого. Этот столбец также может помочь определить, была ли оценка Power Query полностью сложена.

Дополнительная информация

Наши соединители извлекают много информации. Большая часть из него неоднородна и не вписывается в стандартную иерархию столбцов. Эти сведения помещается в запись в столбце дополнительных сведений. Сведения, зарегистрированные из пользовательских соединителей, также отображаются здесь.

Число строк

Количество строк, возвращаемых запросом источника данных. Не включено на всех соединителях.

Длина содержимого

Длина содержимого, возвращаемого HTTP-запросами, как обычно определяется. Это не включено во всех соединителях и не будет точным для соединителей, которые извлекают запросы блоками.

Запрос пользователя

Логическое значение, указывающее, был ли это запрос, созданный пользователем и представленный на панели слева, или он был создан каким-либо другим действием пользователя. Другие действия пользователя могут включать такие действия, как выбор фильтра или использование навигатора в интерфейсе получения данных.

Путь

Path представляет относительный маршрут операции при просмотре в виде части дерева интервалов для всех операций в рамках одного вычисления. В верхней (корневой) части дерева есть одна операция с именем Evaluation с путем "0". Время начала этой оценки соответствует началу этой оценки в целом. Время окончания этой оценки показывает, когда завершена вся оценка. Эта операция верхнего уровня имеет монопольную длительность 0, так как ее единственная цель — служить корнем дерева.

Дальнейшая ветвь операций из корневого каталога. Например, операция может иметь "0/1/5" в качестве пути. Этот путь будет пониматься как:

  • 0: корень дерева
  • 1: родитель текущей операции
  • 5: индекс текущей операции

Операция "0/1/5" может иметь дочерний узел. В этом случае путь имеет вид "0/1/5/8", а значение 8 представляет индекс дочернего элемента.

Идентификатор группы.

Объединение двух (или более) операций не будет выполняться, если это приведет к потере сведений. Группирование предназначено для приближения "команд", выполняемых во время оценки. В подробном представлении несколько операций совместно используют идентификатор группы, соответствующий группам, агрегированным в представлении Сводка.

Как и в случае с большинством столбцов, идентификатор группы относится только к определенной оценке, отфильтрованной по столбцу Id.

Схема секций конфиденциальности данных

Идентификатор

Совпадает с идентификатором для других результатов диагностики запроса. Целочисленная часть представляет один идентификатор действия, а дробная часть — одну оценку.

Ключ раздела

Соответствует запросу или шагу, используемому в качестве раздела брандмауэра.

Группа брандмауэра

Классификация, объясняющая, почему эта секция должна оцениваться отдельно, включая сведения об уровне конфиденциальности секции.

Доступные ресурсы

Список путей к ресурсам для всех ресурсов, к которым обращается эта секция, и, как правило, однозначно определяет источник данных.

Входные данные секции

Список ключей секций, от которых зависит текущая секция (этот список можно использовать для построения графа).

Expression

Выражение, которое вычисляется поверх запроса или шага секции. В нескольких случаях он совпадает с запросом или шагом.

Время начала

Время начала оценки для этой секции.

Время окончания

Время окончания оценки для этой секции.

Duration

Значение, производное от времени окончания минус время начала.

Исключительная длительность

Если предполагается, что секции выполняются в одном потоке, то монопольная длительность — это "реальная" длительность, которую можно присвоить этой секции.

Эксклюзивная длительность %

Монопольная длительность в процентах.

Диагностика

Этот столбец отображается только при записи диагностики запроса "Агрегированный" или "Подробный", что позволяет пользователю выполнять сопоставление между двумя выходными данными диагностики.

Схема счетчиков производительности

При запуске счетчиков производительности каждые половину секунды Power Query создает моментальный снимок использования ресурсов. Этот моментальный снимок не полезен для очень быстрых запросов, но может быть полезен для запросов, которые используют гораздо больше ресурсов.

% времени процессора

Процент времени, затраченного процессорами на запрос. Этот процент может достигать более 100 % из-за нескольких процессоров.

Общее время процессора

Общая длительность процессорного времени, затраченного на запрос.

Число байт данных ввода-вывода в секунду

Скорость пропускной способности данных, полученных из источника данных, выраженная в байтах в секунду.

Фиксация (байты)

Объем виртуальной памяти, зарезервированной для оценки.

Рабочий набор (байты)

Объем памяти, зарезервированной вычислением.

Дополнительные материалы

Запись диагностики в различных вариантах использования

Дополнительные сведения о чтении и визуализации записанных трассировок

Как понять, какие операции запросов свернуты с помощью диагностики запросов