explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 1ZSF

Settings
# exclusive inclusive rows x rows loops node
1. 0.003 6,841.572 ↑ 1.0 10 1

Limit (cost=1,981,462.08..1,981,462.18 rows=10 width=37) (actual time=6,841.569..6,841.572 rows=10 loops=1)

2. 2,244.740 6,841.569 ↑ 9.7 10 1

HashAggregate (cost=1,981,462.08..1,981,463.05 rows=97 width=37) (actual time=6,841.568..6,841.569 rows=10 loops=1)

  • Group Key: source.name, source.serial
3. 1,912.581 4,596.829 ↓ 1.3 8,417,190 1

Hash Join (cost=154,881.81..1,932,262.03 rows=6,560,007 width=37) (actual time=1,597.135..4,596.829 rows=8,417,190 loops=1)

  • Hash Cond: (signal.source_id = source.source_id)
4. 1,108.308 2,684.203 ↓ 1.3 8,417,190 1

Bitmap Heap Scan on signal (cost=154,876.63..1,842,056.75 rows=6,560,007 width=12) (actual time=1,597.069..2,684.203 rows=8,417,190 loops=1)

  • Recheck Cond: ("timestamp" > (now() - '1 mon'::interval))
  • Heap Blocks: exact=90144
5. 1,575.895 1,575.895 ↓ 1.3 8,505,934 1

Bitmap Index Scan on ix_signal_timestamp (cost=0.00..153,236.63 rows=6,560,007 width=0) (actual time=1,575.895..1,575.895 rows=8,505,934 loops=1)

  • Index Cond: ("timestamp" > (now() - '1 mon'::interval))
6. 0.021 0.045 ↑ 1.0 97 1

Hash (cost=3.97..3.97 rows=97 width=33) (actual time=0.045..0.045 rows=97 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 15kB
7. 0.024 0.024 ↑ 1.0 97 1

Seq Scan on source (cost=0.00..3.97 rows=97 width=33) (actual time=0.004..0.024 rows=97 loops=1)