Визуализатор PostgreSQL EXPLAIN

Превращает JSON из EXPLAIN ANALYZE в понятное дерево плана со временем, оценками и буферами

Ввод

Вставьте вывод EXPLAIN (FORMAT JSON). Подходит и вывод psql с заголовком QUERY PLAN и маркерами +.

До 5 МБ, анализ в браузере, ничего не сохраняется.

Сводка

Вставьте план EXPLAIN из PostgreSQL

Выполните команду ниже и вставьте JSON-результат слева или загрузите пример.

Рекомендуемая команда

EXPLAIN (
  ANALYZE,
  BUFFERS,
  SETTINGS,
  WAL,
  VERBOSE,
  FORMAT JSON
)
SELECT ...;

ANALYZE выполняет запрос. Оборачивайте INSERT, UPDATE и DELETE в BEGIN и ROLLBACK.

План

Дерево плана появится здесь после вставки корректного плана.

Ожидается план EXPLAIN.

Что показывает инструмент

PostgreSQL EXPLAIN Visualizer превращает вывод EXPLAIN (FORMAT JSON) в сворачиваемое дерево плана, сортируемую таблицу узлов и отформатированный исходный JSON. В сводке — время выполнения и планирования, число узлов, самый медленный узел, наибольшая ошибка оценки строк и блоки, прочитанные вне shared buffers. Выберите любой узел, чтобы увидеть все поля, которые сообщил PostgreSQL.

Как получить план

Выполните EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL, VERBOSE, FORMAT JSON) со своим запросом и вставьте результат. Вывод psql с заголовком QUERY PLAN, маркерами продолжения + и строкой с числом строк очищается автоматически. ANALYZE выполняет запрос, поэтому оборачивайте INSERT, UPDATE и DELETE в BEGIN и ROLLBACK. Планы без ANALYZE показывают стоимости и оценки, но замечания по времени пропускаются.

Как считаются метрики

Общее время — фактическое время за цикл, умноженное на число циклов; под узлом Gather оно делится на число процессов, чтобы параллельная работа не учитывалась несколько раз. Собственное время вычитает общее время дочерних узлов и не опускается ниже нуля, поэтому для параллельных планов, CTE, InitPlan и SubPlan оно приблизительно. Коэффициент оценки сравнивает фактические и ожидаемые строки за цикл. Счётчики буферов в EXPLAIN включают дочерние узлы, поэтому собственные значения вычитают их. Размер блока предполагается стандартным — 8 кБ.

Замечания и их ограничения

Замечания — это наблюдения с числами из плана: крупные ошибки оценки строк, Nested Loop с множеством внутренних выполнений, последовательные сканирования, отбрасывающие большинство строк, сортировки и хеши с выгрузкой на диск, временные файлы, чтения вне shared buffers и узлы, занимающие большую часть времени. Рекомендации осторожны и никогда не называют конкретный индекс, потому что по одному плану не видно частоты запроса, нагрузки на запись и распределения данных.

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

План может раскрывать имена таблиц и схем, условия и литеральные значения. План разбирается в вашем браузере, большие планы — в Web Worker, и он никогда не загружается на сервер, не журналируется и не сохраняется. Запоминается только выбранный вид (Дерево, Таблица или Исходный).

CodingTool официально запущен на

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch