Профиль запроса

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

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

Внимание

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

Требования

Чтобы просмотреть профиль запроса, необходимо либо быть владельцем запроса, либо иметь разрешение CAN MANAGE в хранилище SQL, выполняющего запрос.

Просмотр профиля запроса

После выполнения запроса в редакторе SQL или записной книжке можно открыть профиль запроса, щелкнув истекшее время в нижней части выходных данных.

Открытие журнала запросов из выходных данных редактора или записной книжки

Вы также можете просмотреть профиль запроса из журнала запросов следующим образом:

  1. Просмотр журнала запросов.

  2. Щелкните имя запроса. Откроется обзор метрик запросов.

    Простое представление сводки выполнения запроса

  3. Щелкните "Просмотреть профиль запроса".

    Примечание.

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

  4. Чтобы просмотреть профиль запроса в представлении графа (по умолчанию), щелкните представление Graph. Чтобы просмотреть профиль запроса в виде дерева, щелкните представление "Дерево".

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

    • Время, затраченное: сумма времени выполнения, затраченного всеми задачами для каждой операции.
    • Rows (Строки): число и размер строк, затронутых каждой из задач запроса.
    • Пиковая память: пиковая память каждого из задач запроса.

    Примечание.

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

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

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

    • Scan (Сканирование): данные считаны из источника данных и выведены в виде строк.
    • Join (Соединение): строки из нескольких связей были объединены (с чередованием) в один набор строк.
    • Union (Объединение): строки из нескольких связей, которые используют одну и ту же схему, сцеплены в один набор строк.
    • Shuffle (В случайном порядке): данные были перераспределены или повторно секционированы. Операции перетасовки являются дорогостоящими в отношении ресурсов, так как они перемещают данные между исполнителями в кластере.
    • Hash / Sort (Хэширование или сортировка): строки были сгруппированы по ключу. Также строки в каждой группе были вычислены с помощью агрегатной функции, такой как SUM, COUNT или MAX.
    • Filter (Фильтрация): входные данные фильтруются по критерию, например с помощью предложения WHERE, и возвращается подмножество строк.
    • (Reused) Exchange (Повторное использование, обмен): обмен операциями перетасовки или трансляций используется для повторного распределения данных между узлами кластера в зависимости от нужного секционирования.
    • Collect Limit (Ограничение на сбор данных): количество возвращаемых строк сокращено с помощью инструкции LIMIT.
    • Take Ordered And Project (Возврат упорядоченных строк и выполнение проекции): в результате запроса возвращены первые N строк.
  8. Чтобы просмотреть профиль запроса в пользовательском интерфейсе Apache Spark, щелкните Вертикальный многоточие в верхней части страницы и нажмите кнопку "Открыть в пользовательском интерфейсе Spark".

  9. Чтобы закрыть импортированный профиль запроса, нажмите X в верхней части страницы.

Дополнительные сведения о данных, доступных в профиле запроса, см. в разделе Просмотр сведений о профиле запроса.

Просмотр сведений о профиле запроса

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

  1. Щелкните Время, чтобы просмотреть длительность каждой вложенной задачи.
  2. Щелкните Rows (Строки), чтобы просмотреть число и размер строк, возвращаемых запросом.
  3. Щелкните Memory (Память), чтобы просмотреть объем памяти, потребляемый каждой задачей запроса. Если задача содержит подзадачи, можно щелкнуть >, чтобы просмотреть сведения о каждой подзадаче.
  4. Справа щелкните Обзор, чтобы просмотреть инструкцию SQL, состояние, время начала и завершения, длительность запроса, имя пользователя, выполнившего запрос, и хранилище, в котором выполнялся запрос.
  5. Щелкните задачу, чтобы просмотреть сведения о ней, например описание задачи и метрики о длительности выполнения задачи, потребленной памяти, количестве и размере возвращаемых строк, а также происхождение данных.
  6. Чтобы закрыть область со сведениями о подзадаче, нажмите кнопку X.
  7. Щелкните имя хранилища SQL, чтобы перейти к свойствам этого хранилища.
  8. Чтобы просмотреть профиль запроса в пользовательском интерфейсе Apache Spark, щелкните Вертикальный многоточие в верхней части страницы и нажмите кнопку "Открыть в пользовательском интерфейсе Spark".
  9. Чтобы закрыть профиль запроса, щелкните X в верхней части страницы.

Совместное использование профиля запроса

Чтобы предоставить общий доступ к профилю запроса другому пользователю, сделайте следующее:

  1. Просмотр журнала запросов.
  2. Щелкните имя запроса.
  3. Чтобы предоставить общий доступ к запросу, у вас есть два варианта:
    • Если у другого пользователя есть разрешение CAN MANAGE для запроса, вы можете поделиться URL-адресом для профиля запроса. Нажмите Поделиться. URL-адрес скопируется в буфер обмена.
    • В противном случае, если другой пользователь не имеет разрешения CAN MANAGE или не является членом рабочей области, можно скачать профиль запроса в виде объекта JSON. Загрузить. Файл JSON будет загружен в локальную систему.

Импорт профиля запроса

Чтобы импортировать JSON для профиля запроса, выполните следующие действия:

  1. Просмотр журнала запросов.

  2. Щелкните меню Вертикальный многоточие кебаб в правом верхнем углу и выберите "Импорт профиля запроса" (JSON).

  3. В обозревателе файлов выберите файл JSON, к которому вам предоставили общий доступ, и нажмите кнопку Открыть. Отправится файл JSON, и отобразится профиль запроса.

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

  4. Чтобы закрыть импортированный профиль запроса, нажмите X в верхней части страницы.

Следующие шаги