Форматер плану 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 або відправте вихід назад на вхід, щоб відрегулювати поріг і переформатувати.