Операторы базы данных и планы выполнения в Ключ-АСТРОМ

Материал из Документация Ключ-АСТРОМ

Операторы базы данных и планы выполнения в Ключ-АСТРОМ

Обзор

Приложение Базы данных собирает SQL-операторы с отслеживаемых экземпляров баз данных и отображает их в представлении Анализ производительности операторов. Вы можете использовать эти данные для выявления ресурсоёмких запросов, понимания поведения запросов с течением времени и запроса планов выполнения для диагностики проблем производительности.

Операторы

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

До нормализации:

SELECT * FROM orders WHERE customer_id = 1042;
SELECT * FROM orders WHERE customer_id = 9871;

После нормализации:

SELECT * FROM orders WHERE customer_id = ?;

Как собираются операторы

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

Анализ производительности операторов

Представление Анализ производительности операторов в приложении Базы данных позволяет изучать собранные операторы и сосредоточиться на наиболее важных запросах.

Вы можете:

  • Использовать Фильтр операторов для поиска конкретного запроса или ключевого слова.
  • Установить Контекстный анализ для ранжирования и сравнения операторов по Time, CPU, Disk или Waits.
  • Настроить столбцы с помощью значка настроек столбцов, чтобы адаптировать представление под ваши задачи анализа.
  • Выбрать Запросить план выполнения для любого оператора, чтобы получить его план выполнения непосредственно из базы данных.

Планы выполнения

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

Просмотр плана выполнения для медленного или ресурсоёмкого оператора помогает понять, почему запрос дорогостоящий, и какие изменения (например, добавление индекса или переписывание соединения) могут улучшить производительность.

Как работают планы выполнения в Ключ-АСТРОМ

Когда вы выбираете Запросить план выполнения для оператора в приложении Базы данных, Ключ-АСТРОМ отправляет оператор в базу данных и извлекает план в реальном времени. Результат сохраняется как запись лога в бакете default_database_monitoring с event.group = "execution_plans".

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

Конфиденциальность данных и PII

Все данные операторов, собираемые Ключ-АСТРОМ, нормализуются перед сохранением для удаления персональных данных (PII). Литеральные значения, такие как имена, адреса электронной почты или идентификаторы, заменяются на заполнители (?). Планы выполнения очищаются таким же образом: значения параметров удаляются перед сохранением плана.

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

Варианты использования

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