Российская СУБД Tantor: отечественные базы данных на PostgreSQL, профессиональная коммерческая система управления БД многопользовательская, разработка на русском языке
Этот сайт использует файлы cookie для улучшения пользовательского опыта. Подробнее...
ОК
Платформа Tantor 2.1

3.5. Мониторинг. Профайлинг запроса (Query Profiler)

Перейти в модуль «Query Profiler» можно находясь внутри экземпляра, через меню слева. Эта вкладка доступна пользователям с любой ролью.
Модуль «Query Profiler» предназначен для профилирования запросов. Работа данного модуля основана на сборе статистики из расширения pg_stat_statements.
Все данные из pg_stat_statements группируются особым образом, чтобы исключить дублирование для идентичных запросов.
Основной график отображает среднее время выполнения запросов, и вы можете выбрать временной интервал для анализа, который также влияет на список запросов. Система автоматически выбирает 50 самых длительных запросов для дальнейшего анализа.
Профилирование полезно, когда необходимо выявить медленно выполняющиеся запросы и их причины. Вы можете использовать функцию поиска для быстрого поиска запросов по хэшу и фильтры для сортировки запросов по различным параметрам, таким как время выполнения, количество строк, время CPU и другие.

Статистика

Кликая на сам запрос, или нажав «Details» в меню в правом хвосте, мы перейдем в запрос, на страницу «Statistics». На странице «Statistics» представлена подробная информация о запросе, включая текст запроса, его хэш, базу данных, пользователя, суммарное время выполнения, количество вызовов, среднее время выполнения, количество возвращенных строк, время CPU, время ввода/вывода и количество прочитанных и записанных блоков.
Также доступны графики для визуализации различных параметров запроса, таких как время выполнения, количество вызовов в секунду, количество возвращенных строк в секунду, время CPU и другие.

План запроса

Мы можем детально посмотреть на план запроса, находясь внутри запроса, кликнув на вкладку «Plans».
Здесь на временной шкале открывается гистограмма, которая показывает с какими планами выполнялся выбранный запрос за указанное время.
Один и тот же запрос может выполняться с разными планами и в разное время по каким-то определенным причинам (к примеру изменилась статистика и поэтому планировщик изменил план запроса).
Внизу гистограммы мы видим список планов запроса, если нажмем на «+», то увидим сам план.
Если мы нажимаем на сам запрос, в центре, мы проваливаемся вовнутрь.
На странице представлена информация, которая позволяет провести подробный анализ запроса:
  • информация об узлах
  • диаграмма исполнения запроса
  • соотношение между элементами
  • план в чистом виде
  • верхнеуровневая модель запроса
  • оригинал запроса из файла записи базы данных
  • рекомендации по индексам и рекомендации общие по узлам
  • статистика по выбранному плану
Со страницы «Explain», можно перейти в окно «PieChart», в нем представлена информация по узлам исполнения запроса. Понять «где болит сильнее всего» непросто, особенно, если запрос содержит несколько десятков узлов, и даже сокращенная форма плана занимает 2-3 экрана.
В «PieChart» сразу, навскидку, видна примерная доля потребления ресурсов каждым из узлов. При наведении на него, слева в текстовом представлении видно иконку у выбранного узла.
Круговая диаграмма плохо показывает отношения между разными узлами и «самые горячие» точки. Для этого гораздо лучше подойдет «Timemap» — это временная карта. Если наводить курсор на разделы карты мы увидим много полезной информации.
По умолчанию здесь мы находимся во вкладке «time», правее мы видим вкладку «cost», где отражается стоимость, и «rows» информация по строкам. Также здесь присутствует цветовая гамма, красный узел — это индикатор, что проблема находится в этом узле. Еще важно отметить, что толщина «ножки» пропорциональна количеству записей, которые были переданы от узла к узлу.