SQL EXPLAIN Plan Visualizer
Parse and visualize SQL EXPLAIN / EXPLAIN ANALYZE output (PostgreSQL text + JSON, MySQL JSON, SQL Server XML) as an interactive tree. Per-node scan type, cost, rows (estimate vs actual), timing, loops, buffers. Detects bottlenecks and row-misestimates with plain-English advice. 100% client-side; plans never leave the browser.
About SQL EXPLAIN Plan Visualizer
Parse and visualize SQL EXPLAIN / EXPLAIN ANALYZE output (PostgreSQL text + JSON, MySQL JSON, SQL Server XML) as an interactive tree. Per-node scan type, cost, rows (estimate vs actual), timing, loops, buffers. Detects bottlenecks and row-misestimates with plain-English advice. 100% client-side; plans never leave the browser. Everything runs locally in your browser — your data never leaves your device.
How to use
- Enter your input in the tool above.
- Adjust any options to your preference.
- Use the Copy or Download buttons to save the result.
- Everything happens locally — your data never leaves your browser.
FAQ
Which EXPLAIN formats does this visualizer support?
Four formats: PostgreSQL TEXT (the indented 'Seq Scan' style), PostgreSQL JSON (FORMAT JSON), MySQL JSON (EXPLAIN FORMAT=JSON), and SQL Server XML (SET SHOWPLAN_XML ON). The tool auto-detects the format from the paste; you can also force a dialect manually.
How does bottleneck and misestimate detection work?
After parsing, the tool walks the plan tree and flags: (1) nodes whose actual rows differ from the planner estimate by >10x — a misestimate, often a sign of stale statistics; (2) sequential scans on large tables that would benefit from an index; (3) nested-loop joins with many loops; (4) sort/hash nodes spilling to disk; (5) nodes consuming a high share of total time. Each finding comes with a plain-English explanation and a suggested fix.
Does the visualizer need ANALYZE timing, or does it work on EXPLAIN-only plans too?
Both. EXPLAIN-only plans (no ANALYZE) give estimates only — the tool still renders the tree, shows scan types and estimated costs/rows, and flags obvious issues like seq scans. With EXPLAIN ANALYZE, you also get actual rows, actual time, loops, and buffer stats, which unlock misestimate detection and the time heatmap.
Are my plans uploaded to a server?
Never. Parsing, tree building, and advice generation all run in your browser. Plans often contain schema details and row counts you may not want to share — this tool is private by design. History (last 20 plans) is stored in localStorage on this device only, and the shareable URL encodes only options in the fragment.
What extra features does this tool have versus PEV2 / depesz / Datadog?
(1) Multi-DBMS parsing (PostgreSQL text+JSON, MySQL JSON, SQL Server XML) in one tool. (2) Auto-detect format. (3) Tree + indented-text view toggle. (4) Per-node % of total time heatmap. (5) Misestimate badges (est vs actual). (6) Bottleneck finder with plain-English advice. (7) Buffer/IO breakdown when available. (8) Two-plan compare (before/after). (9) Sample plans + 'how to collect EXPLAIN' guide. (10) Copy plan as Markdown / JSON. (11) localStorage history (max 20). (12) 100% offline, no upload.
Related tools
.bashrc / .zshrc Alias & Config Manager
Build shell aliases, functions, exports, and PATH edits in a visual editor, then export a clean, commented .aliases file sourced from both .bashrc and .zshrc — with shadowing detection against shell builtins and common CLI tools, function suggestions when args are needed, starter packs (git, docker, kubectl, navigation, safety, ls, dev, devops, data science), import of existing rc files, dedupe, history (localStorage), and shareable URL. 100% client-side.
Add / Subtract Date Calculator
Add or subtract years, months, weeks, days, hours, minutes and seconds from a starting date/time. Calendar-day or business-day mode with custom weekend + holiday list. Month-end policy toggle (clamp to last day vs overflow). Repeat/series mode (e.g. every 2 weeks x 10) with CSV export. Shareable URL. 100% client-side.
Age Calculator
Calculate exact age from a birth date in calendar years/months/days (no negative-day bugs) plus totals in months/weeks/days/hours/minutes/seconds. Next-birthday countdown with weekday. Feb-29 birthday policy toggle. Milestones (1,000 days, 10,000 days, 1 billion seconds). Zodiac sign + Chinese zodiac. Age gap comparison. Shareable URL. 100% client-side.