explain.depesz.com

PostgreSQL's explain analyze made readable

Result: yCgV : EventLog Merge join

Settings
# exclusive inclusive rows x rows loops node
1. 652.188 9,168.688 ↑ 2.2 1,000 1

Merge Join (cost=692.21..1,047,758.95 rows=2,247 width=3,255) (actual time=81.859..9,168.688 rows=1,000 loops=1)

  • Buffers: shared hit=62009 read=1096707
2. 8,450.375 8,450.375 ↑ 1.0 1,997,559 1

Index Scan using callhome_notificationlogs_event_id_idx on callhome_notificationlogs b (cost=0.43..1,042,033.46 rows=2,000,000 width=1,377) (actual time=0.015..8,450.375 rows=1,997,559 loops=1)

  • Buffers: shared hit=61909 read=1095974
3. 4.006 66.125 ↓ 2.0 999 1

Sort (cost=691.78..693.03 rows=500 width=1,878) (actual time=65.894..66.125 rows=999 loops=1)

  • Sort Key: callhome_eventlogs.event_id
  • Sort Method: quicksort Memory: 1032kB
  • Buffers: shared hit=100 read=733
4. 0.105 62.119 ↑ 1.0 500 1

Limit (cost=0.43..664.37 rows=500 width=1,878) (actual time=0.33..62.119 rows=500 loops=1)

  • Buffers: shared hit=100 read=733
5. 62.014 62.014 ↑ 19.2 500 1

Index Scan using eventlog_datetime_index on callhome_eventlogs callhome_eventlogs (cost=0.43..12,717.5 rows=9,577 width=1,878) (actual time=0.329..62.014 rows=500 loops=1)

  • Index Cond: ((callhome_eventlogs.datetime < now()) AND (callhome_eventlogs.datetime > (now() - '30 days'::interval)))
  • Filter: (callhome_eventlogs.is_notified AND (callhome_eventlogs.eventlog_search ~~ 'super ; micro%'::text))
  • Buffers: shared hit=100 read=733