заметки по QPT PostgreSQL

очень важно анализировать проблемы на полном наборе данных. Для этого, например, можно использовать Database LabEngine — средство быстрого создания тонких клонов, разработанное Postgres.ai: https://github.com/postgres-ai/database-lab-engine 


pg_profile. Оно основано на статистических представлениях PostgreSQL, информация из которых сохраняется в хранилище снимков активности. Изучая и сравнивая между собой снимки, можно выявлять проблемы и причины их возникновения. Автор расширения — Андрей Зубков(https://github.com/zubkov-andrei/pg_profile )


Серверная часть приложения, выполняющаяся в СУБД, может состоять не только из SQL-запросов, но и содержать процедурный код. Если код написан на языке PL/pgSQL, то для его профилирования можно воспользоваться сторонним расширением PL Profiler (основной автор – Ян Вик: https://github.com/bigsql/plprofiler)

Работать с большими планами в текстовом виде не всегда удобно. Для лучшей наглядности можно пользоваться сторонними инструментами, из которых отметим https://explain.tensor.ru/about

https://n.sbis.ru/groups/explain/news


EXPLAIN ANALYZE

подзадачи — узлы плана

продолжительность — actual time

или страничный ввод-вывод — buffers

количество выполнений — loops


Можно посчитать общее количество страниц во всех задействованных таблицах:

=> SELECT sum(relpages)

FROM pg_class

WHERE relname IN ('flights','boarding_passes','aircrafts','seats');

sum

-------

60911

(1 row)

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


Комментарии

Популярные сообщения из этого блога

Утилита screen в linux

Virtual Box