explain.depesz.com

PostgreSQL's explain analyze made readable

Result: jpuF : Optimization for: Optimization for: Q1; plan #sxXT; plan #BKRV

Settings

Optimization path:

Optimization(s) for this plan:

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

Unique (cost=249,743.62..250,859.79 rows=111,617 width=22) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, (count(synthese.id_synthese))
2.          

Initplan (for Unique)

3. 0.000 0.000 ↓ 0.0

Index Scan using pk_l_areas on ref_geo.l_areas (cost=0.42..8.47 rows=1 width=32) (actual rows= loops=)

  • Output: st_asewkb(l_areas.geom)
  • Index Cond: (l_areas.id_area = 1234)
4. 0.000 0.000 ↓ 0.0

Sort (cost=249,735.15..250,014.20 rows=111,617 width=22) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, (count(synthese.id_synthese))
  • Sort Key: taxref.cd_ref, taxref.group2_inpn, (count(synthese.id_synthese))
5. 0.000 0.000 ↓ 0.0

Finalize GroupAggregate (cost=205,484.24..238,084.57 rows=111,617 width=22) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, count(synthese.id_synthese)
  • Group Key: taxref.cd_ref, taxref.group2_inpn
6. 0.000 0.000 ↓ 0.0

Gather Merge (cost=205,484.24..235,294.15 rows=223,234 width=22) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, (PARTIAL count(synthese.id_synthese))
  • Workers Planned: 2
  • Params Evaluated: $0
7. 0.000 0.000 ↓ 0.0

Partial GroupAggregate (cost=204,484.21..208,527.38 rows=111,617 width=22) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, PARTIAL count(synthese.id_synthese)
  • Group Key: taxref.cd_ref, taxref.group2_inpn
8. 0.000 0.000 ↓ 0.0

Sort (cost=204,484.21..205,215.96 rows=292,700 width=18) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, synthese.id_synthese
  • Sort Key: taxref.cd_ref, taxref.group2_inpn
9. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=149,284.00..171,902.42 rows=292,700 width=18) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, synthese.id_synthese
  • Hash Cond: (cor_area_synthese.id_synthese = synthese.id_synthese)
10. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on gn_synthese.cor_area_synthese (cost=0.00..18,105.98 rows=878,098 width=4) (actual rows= loops=)

  • Output: cor_area_synthese.id_synthese, cor_area_synthese.id_area
11. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=148,367.31..148,367.31 rows=73,335 width=18) (actual rows= loops=)

  • Output: synthese.id_synthese, taxref.cd_ref, taxref.group2_inpn
12. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=30,292.15..148,367.31 rows=73,335 width=18) (actual rows= loops=)

  • Output: synthese.id_synthese, taxref.cd_ref, taxref.group2_inpn
  • Inner Unique: true
  • Hash Cond: (synthese.cd_nom = taxref.cd_nom)
13. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on gn_synthese.synthese (cost=0.00..115,963.66 rows=73,335 width=8) (actual rows= loops=)

  • Output: synthese.id_synthese, synthese.cd_nom
  • Filter: st_intersects(synthese.the_geom_local, st_buffer(st_geomfromewkb($0), '2000'::double precision))
14. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=26,078.18..26,078.18 rows=229,518 width=18) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, taxref.cd_nom
15. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on taxonomie.taxref (cost=0.00..26,078.18 rows=229,518 width=18) (actual rows= loops=)

  • Output: taxref.cd_ref, taxref.group2_inpn, taxref.cd_nom