Форматер плана EXPLAIN для SQL
Преобразуйте выходные данные EXPLAIN или EXPLAIN ANALYZE в читаемое дерево операций с выделением медленных частей.
Форматер плана EXPLAIN для SQL
Вставьте сырой вывод EXPLAIN или EXPLAIN ANALYZE, и этот инструмент превращает стену текста в отступанное дерево операций с выстроенными рядом затратами, количеством строк и временем каждого узла. Вместо сканирования плотного блока аннотаций "cost=… rows=… actual time=…" вы получите форму, которую можно прочитать с первого взгляда — какой скан питает какое соединение и где запрос на самом деле тратит свое время.
Выберите диалект, соответствующий вашей БД: PostgreSQL и MySQL EXPLAIN ANALYZE используют одно и то же отступанное дерево "-> ", классический (не-ANALYZE) EXPLAIN MySQL анализируется строка за строкой, а SQLite EXPLAIN QUERY PLAN получает собственное ASCII-дерево и форматы id/parent. Вставляйте простой текст или переключайте формат входа на JSON для PostgreSQL EXPLAIN (FORMAT JSON) и MySQL EXPLAIN FORMAT=JSON вывода. Переключение "Показывать строки" контролирует оценочные и фактические цифры строк, порог дорогостоящих операций контролирует, какой процент от общей стоимости или времени заслуживает узел флаг "дорогостоящий", а "Скрывать узлы" позволяет обрезать ветки с низкой стоимостью из длинного плана, чтобы выбросы выделялись. Переключайтесь между отступанным деревом и простой выстроенной таблицей.
Стоимость и время, которые каждый узел отчитывает, являются кумулятивными — они уже включают каждое дитя снизу — поэтому инструмент вычитает каждого потомка узла перед ранжированием чего-либо, это предотвращает то, что узел верхнего уровня запроса всегда выглядит как "дорогостоящий". Строка сводки под планом подсчитывает операции, считает количество отмеченных и называет самую медленную ветку от корня к листу, поэтому вы знаете ровно, какую цепочку операций исследовать в первую очередь.
Все работает локально в вашем браузере — план запроса может раскрыть имена таблиц и индексов, которые вы бы предпочли не вставлять в случайную веб-форму, и ничего из этого не передается никуда. Скопируйте отформатированное дерево, загрузите его как файл .txt или отправьте выход обратно во вход, чтобы отрегулировать порог и переформатировать.