Data / Query / EXPLAIN
Loading console…
data / query / explain

Plan tree visualizer

One structural plan, every modality. Each operator node shows estimate vs actual rows, self time, and share of total. The hot operator is highlighted in accent; divergent row estimates light up in amber.

paste an /explain result · live wiring lands in the next patch

total time
42.1 ms
rows returned
8
operator count
5
hot operator
HashJoin · 28.4 ms
query
SELECT u.team, COUNT(*) AS n, SUM(o.total) AS gmv
FROM shop.orders o
JOIN shop.users u ON u.id = o.user_id
WHERE o.created_at >= NOW() - INTERVAL '7 days'
GROUP BY u.team
ORDER BY gmv DESC
plan tree · top down accent border = hot operator · amber = estimate divergence (> 1.5×)
Sort 0.7%
order by gmv DESC
est
8
actual
8
time
0.30 ms
share
0.7%
HashAggregate 5.0%
group by u.team · agg COUNT(*), SUM(o.total)
est
8
actual
8
time
2.1 ms
share
5.0%
HashJoin hot · 67%
build on users.id (184 keys) · probe orders.user_id
est
18.4k
actual
18.0k
time
28 ms
share
67%
BTreeRangeScan 23%
shop.orders · created_at >= now()-7d · 1 file · zone-map hit
est
18.0k
actual
18.0k
time
9.7 ms
share
23%
SeqScan 3.8%
shop.users · no predicate · 1 file · 8.2 KB
est
184
actual
184
time
1.6 ms
share
3.8%

plan trees are JSON-serializable and cached by question hash · see the plan tree in concepts