Tested tool guide
Tested browser tools
Checked August 16, 2026
What SQL EXPLAIN Visualizer does, with a checked example
EXPLAIN prints a query plan as indented text, which is what you stare at when debugging a slow query. This tool turns that text into a tree diagram: each node is one plan step - a seq scan, an index scan, a join - labeled with startup cost, total cost, and estimated rows. Indentation becomes nesting, so a Bitmap Index Scan beneath a Bitmap Heap Scan renders as a child node. The common surprise: cost numbers are arbitrary planner units, not milliseconds, and unless you ran EXPLAIN ANALYZE, every value is an estimate derived from table statistics.
Worked example
A concrete input and expected output from the current implementation.
Input
Bitmap Heap Scan on tenk1 (cost=5.07..229.20 rows=100 width=244)
Recheck Cond: (unique1 < 100)
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=100 width=0)
Index Cond: (unique1 < 100) ->
Expected output
A two-node tree. The root card reads "Bitmap Heap Scan on tenk1", cost 5.07..229.20, rows=100; its single child reads "Bitmap Index Scan on tenk1_unique1", cost 0.00..5.04, rows=100. The child carries Index Cond: (unique1 < 100); the parent shows Recheck Cond: (unique1 < 100). The parent's startup cost (5.07) sits just above the child's total cost (5.04).
PostgreSQL plans build bottom-up: the heap scan cannot emit a row until the index scan has produced its bitmap, so the parent's startup cost is the child's total cost plus a small amount (5.07 versus 5.04). The tool draws that dependency as the parent-child edge.