Поделиться через


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

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

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

Снимок экрана: диагностика функции запроса на ленте Power Query Tools.

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

Снимок экрана: параметры диагностики запросов с выделенным параметром

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

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

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

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

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

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

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

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

Примечание.

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

Обобщенное и подробное представление

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

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

Объяснение нескольких вычислений

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

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

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

Артикул

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

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

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

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

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

Query

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

Этап

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

Категория

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

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

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

Операция

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

Время запуска

Время запуска операции.

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

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

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

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

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

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

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

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

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

Ресурс

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

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

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

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

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

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

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

Количество строк

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

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

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

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

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

Путь

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

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

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

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

ИД группы

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

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

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

Артикул

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

Ключ раздела

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

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

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

Доступ к ресурсам

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

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

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

Expression

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

Время запуска

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

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

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

Duration

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

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

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

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

Эксклюзивная длительность в процентах.

Диагностика

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

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

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

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

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

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

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

Байты данных ввода-вывода в секунду

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

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

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

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

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