PlanReader
Understand Your Database Execution Plan
Analyze PostgreSQL EXPLAIN plans, SQL Server Showplan XML and Snowflake operator profiles. Find expensive
scans, bad estimates, spills, inefficient joins and other performance problems directly in your browser.
Nothing you paste ever leaves your browser. Parsing, analysis, and rendering all run locally — no signup,
no server, no limit.
Supported Databases
PostgreSQL — EXPLAIN (ANALYZE, BUFFERS) output — JSON or plain text
SQL Server — Showplan XML (.sqlplan) — the Actual Execution Plan
Snowflake — GET_QUERY_OPERATOR_STATS() output or exported Query Profile JSON
What PlanReader Detects
- Expensive sequential or full table scans on large tables
- Row estimate mismatches, where the planner misjudges how many rows a step will touch
- Disk spills — sorts and hashes that overflow available memory
- Inefficient joins — nested loop blowups, exploding joins, and cartesian joins
- Missing index opportunities, where derivable from the plan itself
-
Engine-specific issues — SQL Server key lookup explosions and memory grant problems, Snowflake
partition pruning and spill
Why PlanReader
- Free, no signup, no account
- 100% client-side — nothing you paste ever leaves your browser
- Plain-English explanations, not just raw operator names
- Interactive node-graph visualization of the whole plan
- One tool for PostgreSQL, SQL Server, and Snowflake
How It Works
-
Paste your plan.
EXPLAIN output, Showplan XML, or Snowflake operator stats.
-
Parsed and analyzed locally.
The rule engine flags scans, spills, bad estimates, and inefficient joins — entirely in your browser.
-
Explore the graph.
Click any node for a plain-English breakdown, or copy a share link — nothing is stored on a server.
Privacy
- Nothing you paste is ever sent to a server — parsing and analysis run entirely in your browser
- No account, no signup, no tracking of plan content
-
Share links encode your plan into the URL itself, in a fragment your browser never sends in any
request — not stored anywhere
- Local history, if you use it, stays in your own browser's storage
Try an Example
No plan handy? Load a real sample for each engine above and see PlanReader work immediately.
Learn More
Every node in the graph includes a plain-English glossary entry — click a node, then "Learn more" for
what the operator does, when it's fine, and when it's worth a second look. That's the fastest way to go
deeper on any specific operator without leaving the tool.
FAQ
- Is PlanReader free?
- Yes — free, no signup, no account required.
- Is my execution plan sent to a server?
-
No. Parsing and analysis run 100% client-side in your browser; nothing you paste is ever transmitted.
- Which databases are supported?
- PostgreSQL, SQL Server, and Snowflake.
- Can I share a plan with a teammate?
- Yes — the share link encodes your plan directly in the URL. It's never stored on a server.
- Can PlanReader tell me why a query is sometimes fast and sometimes slow?
-
Not definitively. A single pasted plan is one snapshot of one execution — if a query's performance
varies, a different plan may be used for different input values, which one pasted plan can't show
you.