explain.depesz.com

PostgreSQL's explain analyze made readable

Result: zJyq

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=336,712.08..343,019.40 rows=105,122 width=64) (actual rows= loops=)

  • Group Key: spins.station_id, songs.song_id
2. 0.000 0.000 ↓ 0.0

Sort (cost=336,712.08..336,974.89 rows=105,122 width=76) (actual rows= loops=)

  • Sort Key: spins.station_id, songs.song_id
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.68..323,271.51 rows=105,122 width=76) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.11..172,738.65 rows=105,122 width=76) (actual rows= loops=)

  • Hash Cond: ((spins.daypart_name)::text = (dp.daypart_name)::text)
5. 0.000 0.000 ↓ 0.0

Append (cost=0.00..155,918.09 rows=4,204,862 width=14) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Seq Scan on mediabase_songs_spins spins (cost=0.00..0.00 rows=1 width=76) (actual rows= loops=)

  • Filter: ((play_start_dt >= '2018-11-18 00:00:00'::timestamp without time zone) AND (play_start_dt <= '2018-11-24 00:00:00'::timestamp without time zone))
7. 0.000 0.000 ↓ 0.0

Seq Scan on mediabase_songs_spins_20181118_20181124 spins_1 (cost=0.00..155,918.09 rows=4,204,861 width=14) (actual rows= loops=)

  • Filter: ((play_start_dt >= '2018-11-18 00:00:00'::timestamp without time zone) AND (play_start_dt <= '2018-11-24 00:00:00'::timestamp without time zone))
8. 0.000 0.000 ↓ 0.0

Hash (cost=1.05..1.05 rows=5 width=68) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Seq Scan on dayparts dp (cost=0.00..1.05 rows=5 width=68) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Index Scan using uk_songs_mediabase_id on songs (cost=0.56..1.42 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (mediabase_id = spins.mediabase_id)