explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 2U2G

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

Finalize GroupAggregate (cost=656,010.35..952,594.34 rows=1,618,283 width=202) (actual rows= loops=)

  • Group Key: t_dim_geographique_geo.geo_union_europeenne, t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_code_region, t_dim_geographique_geo.ge
2. 0.000 0.000 ↓ 0.0

Gather Merge (cost=656,010.35..858,868.74 rows=1,348,570 width=202) (actual rows= loops=)

  • Workers Planned: 2
3. 0.000 0.000 ↓ 0.0

Partial GroupAggregate (cost=655,010.33..702,210.28 rows=674,285 width=202) (actual rows= loops=)

  • Group Key: t_dim_geographique_geo.geo_union_europeenne, t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_code_region, t_dim_geograp
4. 0.000 0.000 ↓ 0.0

Sort (cost=655,010.33..656,696.04 rows=674,285 width=164) (actual rows= loops=)

  • Sort Key: t_dim_geographique_geo.geo_union_europeenne, t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_code_region, t_dim_ge
5. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,534.11..589,729.43 rows=674,285 width=164) (actual rows= loops=)

  • Hash Cond: (t_fait_bov_mouvements_mvt_y2019m02.mvt_id_date = (t_dim_date_dat.dat_id_date)::integer)
6. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=1,773.98..587,198.90 rows=674,285 width=124) (actual rows= loops=)

  • Hash Cond: ((t_fait_bov_mouvements_mvt_y2019m02.mvt_id_lieu_mvt)::integer = t_dim_geographique_geo.geo_id_geographique)
7. 0.000 0.000 ↓ 0.0

Hash Join (cost=219.69..583,874.43 rows=674,285 width=58) (actual rows= loops=)

  • Hash Cond: ((t_fait_bov_mouvements_mvt_y2019m02.mvt_id_age)::smallint = (tj_cag_age.id_age)::integer)
8. 0.000 0.000 ↓ 0.0

Parallel Append (cost=0.00..545,033.98 rows=8,500,849 width=28) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on t_fait_bov_mouvements_mvt_y2019m02 (cost=0.00..502,529.74 rows=8,500,849 width=28) (actual rows= loops=)

  • Filter: ((mvt_id_date >= 20190201) AND (mvt_id_date <= 20190228))
10. 0.000 0.000 ↓ 0.0

Hash (cost=211.28..211.28 rows=673 width=36) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Hash Join (cost=27.97..211.28 rows=673 width=36) (actual rows= loops=)

  • Hash Cond: ((tj_cag_age.id_cag)::integer = t_dim_classe_age_cag.cag_id)
12. 0.000 0.000 ↓ 0.0

Seq Scan on tj_cag_age (cost=0.00..160.86 rows=8,486 width=8) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Hash (cost=27.40..27.40 rows=46 width=36) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Seq Scan on t_dim_classe_age_cag (cost=0.00..27.40 rows=46 width=36) (actual rows= loops=)

  • Filter: ((cag_libelle)::text = ANY ('{"0 - 21 jours","21 jours - 3 mois","3 mois - 6 mois","6
15. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=1,265.24..1,265.24 rows=23,124 width=74) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on t_dim_geographique_geo (cost=0.00..1,265.24 rows=23,124 width=74) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=527.28..527.28 rows=18,628 width=48) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Seq Scan on t_dim_date_dat (cost=0.00..527.28 rows=18,628 width=48) (actual rows= loops=)