Find your query's bottleneck in seconds
Postgres EXPLAIN visualizer

Paste a plan to see what's slow

GresTrace turns raw EXPLAIN output into a visual diagram, points at the exact node burning the time, and, for common patterns, hands you the SQL fix.

Format: auto-detect (text / JSON)

Sample plans

Example: Unindexed Filter Scan
Aggregate — 0% of query time · 121 ms total · rows 1 actual / 1 planned · cost 20,000#1 Aggregate121 ms1 rows · est 1Seq Scan on orders — 100% of query time · 120.5 ms total · rows 100 actual / 500 planned · cost 18,334100%#2 Seq Scan on ord…120.5 ms100 rows · est 500!This scan read every row in the table and threw most of them away. An index on the filtered column would let Postgres jump straight to the matching rows instead. — Postgres reads entire rows from disk then throws most of them away because the filter has no index. Adding an index on the filtered column means only matching rows are ever read.
Fix CREATE INDEX ON orders (status);