explain.depesz.com

PostgreSQL's explain analyze made readable

Result: vNP5 : Optimization for: plan #9wjY

Settings

Optimization path:

# exclusive inclusive rows x rows loops node
1. 1,144.970 1,240.271 ↑ 1.6 1,272 1

Nested Loop (cost=1,783.97..5,562.08 rows=2,052 width=318) (actual time=57.036..1,240.271 rows=1,272 loops=1)

2.          

Initplan (forNested Loop)

3. 4.736 24.665 ↑ 1.0 1 1

Aggregate (cost=1,244.94..1,244.95 rows=1 width=8) (actual time=24.664..24.665 rows=1 loops=1)

4. 12.836 19.929 ↑ 1.0 21,736 1

Hash Join (cost=538.74..973.24 rows=21,736 width=409) (actual time=2.036..19.929 rows=21,736 loops=1)

  • Hash Cond: ((county_outages_1.fips)::text = (counties_1.geoid)::text)
5. 5.081 5.081 ↑ 1.0 21,736 1

Seq Scan on county_outages county_outages_1 (cost=0.00..377.36 rows=21,736 width=14) (actual time=0.003..5.081 rows=21,736 loops=1)

6. 0.963 2.012 ↑ 1.0 3,233 1

Hash (cost=498.33..498.33 rows=3,233 width=6) (actual time=2.012..2.012 rows=3,233 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 152kB
7. 1.049 1.049 ↑ 1.0 3,233 1

Seq Scan on counties counties_1 (cost=0.00..498.33 rows=3,233 width=6) (actual time=0.002..1.049 rows=3,233 loops=1)

8. 29.396 54.208 ↑ 1.8 148 1

Subquery Scan on county_outage_view (cost=538.74..1,516.64 rows=262 width=1,146) (actual time=53.522..54.208 rows=148 loops=1)

  • Filter: (county_outage_view.forecast_time = $0)
  • Rows Removed by Filter: 21588
9. 14.651 24.812 ↑ 1.0 21,736 1

Hash Join (cost=538.74..1,244.94 rows=21,736 width=1,251) (actual time=5.209..24.812 rows=21,736 loops=1)

  • Hash Cond: ((county_outages.fips)::text = (counties.geoid)::text)
10. 5.004 5.004 ↑ 1.0 21,736 1

Seq Scan on county_outages (cost=0.00..377.36 rows=21,736 width=23) (actual time=0.007..5.004 rows=21,736 loops=1)

11. 3.523 5.157 ↑ 1.0 3,233 1

Hash (cost=498.33..498.33 rows=3,233 width=1,131) (actual time=5.156..5.157 rows=3,233 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 3445kB
12. 1.634 1.634 ↑ 1.0 3,233 1

Seq Scan on counties (cost=0.00..498.33 rows=3,233 width=1,131) (actual time=0.003..1.634 rows=3,233 loops=1)

13. 16.428 16.428 ↓ 9.0 9 148

Index Scan using a785_ix1 on cellulartowers (cost=0.28..8.72 rows=1 width=209) (actual time=0.038..0.111 rows=9 loops=148)

  • Index Cond: (county_outage_view.geom && shape)
  • Filter: _st_intersects(county_outage_view.geom, shape)
  • Rows Removed by Filter: 5