Evidence-based PostgreSQL diagnostics

Your PostgreSQL query is slow. Find out why.

Paste an EXPLAIN ANALYZE plan. PlanCheck finds expensive scans, bad row estimates, disk spills, inefficient joins, trigger overhead and more — using deterministic rules, not AI guesses.

No signupTEXT + JSONRuns in your browserPlans never leave your device

High impact

High-Effort Zero-Result Scan

Verified

Rows examined

1,399,944

Rows returned

0

Work discarded

100%

What happened

The scan examined almost 1.4M rows and the filter rejected every one. The work is measurable directly from the plan.

What to check next

Verify index availability, predicate selectivity, and planner estimates before changing the query or schema.

Why PlanCheck

It tells you what the plan proves — and what it doesn’t.

Generic AI advice can sound confident even when an EXPLAIN plan cannot support the claim. PlanCheck separates observation, interpretation, and next checks so you can optimize without pretending.

Observed

Facts PostgreSQL actually reported in the execution plan.

Interpreted

Why those facts commonly matter for performance.

Next checks

What to verify before you change indexes, SQL, or configuration.

Bounded

Limitations are explicit when the plan cannot prove something.

Already built in

16+ deterministic performance checks

Sequential scan waste
Row-estimate mismatch
Nested-loop amplification
Disk sort spills
Hash memory pressure
Bitmap rechecks
Ineffective LIMITs
Heap fetch overhead
Join-filter waste
CTE materialization
Trigger overhead
JIT overhead
Parallel-query issues
Recursive explosions
Missing-index signals
Sort memory pressure

CLI now available

PlanCheck in your terminal.

Run the same deterministic detector engine locally with npm. No account, no upload, and a non-zero exit code option for scripts and CI.

View pg-plancheck on npm

$ npx pg-plancheck analyze plan.json

✓ Analysis complete

3 high-impact findings

1 medium-impact finding

$ npx pg-plancheck analyze plan.json --fail-on high

exit code 1 — high-impact finding detected

PostgreSQL EXPLAIN library

Understand the numbers behind your plan.

Start here

How to read PostgreSQL EXPLAIN ANALYZE

A practical walkthrough of rows, loops, estimates, scans, joins, sorts and the signals that matter.

Stop guessing at query plans.

Paste the plan. See the evidence. Know what to investigate next.

Analyze a PostgreSQL plan