explain.depesz.com

PostgreSQL's explain analyze made readable

Result: RdvG

Settings
# exclusive inclusive rows x rows loops node
1. 7,243.502 903,197.246 ↑ 5.5 4,927,682 1

Finalize GroupAggregate (cost=2,921,343.28..6,877,884.00 rows=27,142,226 width=101) (actual time=639,037.875..903,197.246 rows=4,927,682 loops=1)

  • Output: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age, sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_present)::integer), sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_sorti_dans_le_mois)::integer), sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_entre_dans_le_mois)::integer), count(*)
  • Group Key: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age
2. 0.000 895,953.744 ↑ 3.7 6,093,347 1

Gather Merge (cost=2,921,343.28..5,984,452.38 rows=22,618,522 width=101) (actual time=639,037.691..895,953.744 rows=6,093,347 loops=1)

  • Output: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age, (PARTIAL sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_present)::integer)), (PARTIAL sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_sorti_dans_le_mois)::integer)), (PARTIAL sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_entre_dans_le_mois)::integer)), (PARTIAL count(*))
  • Workers Planned: 2
  • Workers Launched: 2
3. 61,070.517 2,079,493.896 ↑ 5.6 2,031,116 3

Partial GroupAggregate (cost=2,920,343.26..3,372,713.70 rows=11,309,261 width=101) (actual time=600,596.857..693,164.632 rows=2,031,116 loops=3)

  • Output: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age, PARTIAL sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_present)::integer), PARTIAL sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_sorti_dans_le_mois)::integer), PARTIAL sum((t_fait_bov_mouvements_mvt_y2018m12.mvt_entre_dans_le_mois)::integer), PARTIAL count(*)
  • Group Key: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age
  • Worker 0: actual time=597523.154..688558.082 rows=2092747 loops=1
  • Worker 1: actual time=638965.890..730834.212 rows=1977563 loops=1
4. 1,080,844.932 2,018,423.379 ↓ 2.4 27,698,435 3

Sort (cost=2,920,343.26..2,948,616.41 rows=11,309,261 width=81) (actual time=600,596.719..672,807.793 rows=27,698,435 loops=3)

  • Output: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age, t_fait_bov_mouvements_mvt_y2018m12.mvt_present, t_fait_bov_mouvements_mvt_y2018m12.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m12.mvt_entre_dans_le_mois
  • Sort Key: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age
  • Sort Method: external merge Disk: 2407272kB
  • Worker 0: Sort Method: external merge Disk: 2491984kB
  • Worker 1: Sort Method: external merge Disk: 2901616kB
  • Worker 0: actual time=597523.011..668966.640 rows=26538747 loops=1
  • Worker 1: actual time=638965.690..708113.110 rows=30910786 loops=1
5. 52,895.133 937,578.447 ↓ 2.4 27,698,435 3

Parallel Hash Join (cost=1,556.28..1,595,406.71 rows=11,309,261 width=81) (actual time=21.826..312,526.149 rows=27,698,435 loops=3)

  • Output: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_dim_race_rac.rac_type_de_production, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age, t_fait_bov_mouvements_mvt_y2018m12.mvt_present, t_fait_bov_mouvements_mvt_y2018m12.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m12.mvt_entre_dans_le_mois
  • Inner Unique: true
  • Hash Cond: ((t_fait_bov_mouvements_mvt_y2018m12.mvt_id_lieu_mvt)::integer = t_dim_geographique_geo.geo_id_geographique)
  • Worker 0: actual time=0.335..316288.828 rows=26538747 loops=1
  • Worker 1: actual time=0.319..307917.419 rows=30910786 loops=1
6. 37,029.288 884,633.037 ↓ 2.5 27,836,843 3

Hash Join (cost=2.46..1,564,162.90 rows=11,309,261 width=39) (actual time=4.640..294,877.679 rows=27,836,843 loops=3)

  • Output: t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age, t_fait_bov_mouvements_mvt_y2018m12.mvt_present, t_fait_bov_mouvements_mvt_y2018m12.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m12.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_lieu_mvt, t_dim_race_rac.rac_type_de_production
  • Inner Unique: true
  • Hash Cond: ((t_fait_bov_mouvements_mvt_y2018m12.mvt_id_race)::integer = t_dim_race_rac.rac_id_race)
  • Worker 0: actual time=0.173..299233.157 rows=26674945 loops=1
  • Worker 1: actual time=0.161..289195.425 rows=31066800 loops=1
7. 12,318.498 847,603.524 ↑ 1.3 27,838,129 3

Parallel Append (cost=0.00..1,470,880.78 rows=34,797,725 width=37) (actual time=4.540..282,534.508 rows=27,838,129 loops=3)

  • Worker 0: actual time=0.056..287308.116 rows=26676147 loops=1
  • Worker 1: actual time=0.060..275839.146 rows=31068227 loops=1
8. 131,731.338 131,731.338 ↓ 2.4 21,380,632 1

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2018m12 (cost=0.00..331,997.97 rows=8,908,597 width=37) (actual time=0.055..131,731.338 rows=21,380,632 loops=1)

  • Output: t_fait_bov_mouvements_mvt_y2018m12.mvt_id_date, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_age, t_fait_bov_mouvements_mvt_y2018m12.mvt_present, t_fait_bov_mouvements_mvt_y2018m12.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m12.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2018m12.mvt_id_race
  • Worker 0: actual time=0.055..131731.338 rows=21380632 loops=1
9. 68,560.054 68,560.054 ↓ 2.4 21,049,498 1

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2019m01 (cost=0.00..326,856.24 rows=8,770,624 width=37) (actual time=0.058..68,560.054 rows=21,049,498 loops=1)

  • Output: t_fait_bov_mouvements_mvt_y2019m01.mvt_id_date, t_fait_bov_mouvements_mvt_y2019m01.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2019m01.mvt_id_age, t_fait_bov_mouvements_mvt_y2019m01.mvt_present, t_fait_bov_mouvements_mvt_y2019m01.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m01.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m01.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2019m01.mvt_id_race
  • Worker 1: actual time=0.058..68560.054 rows=21049498 loops=1
10. 496,285.590 496,285.590 ↑ 1.2 6,585,313 3

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2018m10 (cost=0.00..306,809.90 rows=8,231,490 width=37) (actual time=0.579..165,428.530 rows=6,585,313 loops=3)

  • Output: t_fait_bov_mouvements_mvt_y2018m10.mvt_id_date, t_fait_bov_mouvements_mvt_y2018m10.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m10.mvt_id_age, t_fait_bov_mouvements_mvt_y2018m10.mvt_present, t_fait_bov_mouvements_mvt_y2018m10.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m10.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m10.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2018m10.mvt_id_race
  • Worker 0: actual time=1.421..146847.066 rows=4882934 loops=1
  • Worker 1: actual time=0.290..202591.519 rows=10018729 loops=1
11. 116,750.490 116,750.490 ↓ 1.2 9,745,060 2

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2019m02 (cost=0.00..302,636.83 rows=8,120,883 width=37) (actual time=11.949..58,375.245 rows=9,745,060 loops=2)

  • Output: t_fait_bov_mouvements_mvt_y2019m02.mvt_id_date, t_fait_bov_mouvements_mvt_y2019m02.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2019m02.mvt_id_age, t_fait_bov_mouvements_mvt_y2019m02.mvt_present, t_fait_bov_mouvements_mvt_y2019m02.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m02.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m02.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2019m02.mvt_id_race
  • Worker 0: actual time=14.105..4717.003 rows=412581 loops=1
12. 21,957.551 21,957.551 ↓ 2.4 1,838,197 1

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2018m11 (cost=0.00..28,548.15 rows=765,915 width=37) (actual time=13.500..21,957.551 rows=1,838,197 loops=1)

  • Output: t_fait_bov_mouvements_mvt_y2018m11.mvt_id_date, t_fait_bov_mouvements_mvt_y2018m11.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2018m11.mvt_id_age, t_fait_bov_mouvements_mvt_y2018m11.mvt_present, t_fait_bov_mouvements_mvt_y2018m11.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m11.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2018m11.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2018m11.mvt_id_race
13. 0.001 0.001 ↓ 0.0 0 1

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2019m03 (cost=0.00..10.76 rows=76 width=62) (actual time=0.000..0.001 rows=0 loops=1)

  • Output: t_fait_bov_mouvements_mvt_y2019m03.mvt_id_date, t_fait_bov_mouvements_mvt_y2019m03.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2019m03.mvt_id_age, t_fait_bov_mouvements_mvt_y2019m03.mvt_present, t_fait_bov_mouvements_mvt_y2019m03.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m03.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m03.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2019m03.mvt_id_race
14. 0.001 0.001 ↓ 0.0 0 1

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2019m04 (cost=0.00..10.76 rows=76 width=62) (actual time=0.000..0.001 rows=0 loops=1)

  • Output: t_fait_bov_mouvements_mvt_y2019m04.mvt_id_date, t_fait_bov_mouvements_mvt_y2019m04.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2019m04.mvt_id_age, t_fait_bov_mouvements_mvt_y2019m04.mvt_present, t_fait_bov_mouvements_mvt_y2019m04.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m04.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m04.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2019m04.mvt_id_race
15. 0.000 0.000 ↓ 0.0 0 1

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2019m05 (cost=0.00..10.76 rows=76 width=62) (actual time=0.000..0.000 rows=0 loops=1)

  • Output: t_fait_bov_mouvements_mvt_y2019m05.mvt_id_date, t_fait_bov_mouvements_mvt_y2019m05.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2019m05.mvt_id_age, t_fait_bov_mouvements_mvt_y2019m05.mvt_present, t_fait_bov_mouvements_mvt_y2019m05.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m05.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m05.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2019m05.mvt_id_race
16. 0.001 0.001 ↓ 0.0 0 1

Parallel Seq Scan on entrepot.t_fait_bov_mouvements_mvt_y2019m06 (cost=0.00..10.76 rows=76 width=62) (actual time=0.001..0.001 rows=0 loops=1)

  • Output: t_fait_bov_mouvements_mvt_y2019m06.mvt_id_date, t_fait_bov_mouvements_mvt_y2019m06.mvt_id_sexe, t_fait_bov_mouvements_mvt_y2019m06.mvt_id_age, t_fait_bov_mouvements_mvt_y2019m06.mvt_present, t_fait_bov_mouvements_mvt_y2019m06.mvt_sorti_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m06.mvt_entre_dans_le_mois, t_fait_bov_mouvements_mvt_y2019m06.mvt_id_lieu_mvt, t_fait_bov_mouvements_mvt_y2019m06.mvt_id_race
17. 0.102 0.225 ↑ 1.0 65 3

Hash (cost=1.65..1.65 rows=65 width=10) (actual time=0.073..0.075 rows=65 loops=3)

  • Output: t_dim_race_rac.rac_type_de_production, t_dim_race_rac.rac_id_race
  • Buckets: 1024 Batches: 1 Memory Usage: 11kB
  • Worker 0: actual time=0.089..0.091 rows=65 loops=1
  • Worker 1: actual time=0.073..0.075 rows=65 loops=1
18. 0.123 0.123 ↑ 1.0 65 3

Seq Scan on entrepot.t_dim_race_rac (cost=0.00..1.65 rows=65 width=10) (actual time=0.024..0.041 rows=65 loops=3)

  • Output: t_dim_race_rac.rac_type_de_production, t_dim_race_rac.rac_id_race
  • Worker 0: actual time=0.035..0.052 rows=65 loops=1
  • Worker 1: actual time=0.022..0.038 rows=65 loops=1
19. 23.089 50.277 ↑ 1.8 13,192 3

Parallel Hash (cost=1,262.81..1,262.81 rows=23,281 width=50) (actual time=16.759..16.759 rows=13,192 loops=3)

  • Output: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_dim_geographique_geo.geo_id_geographique
  • Buckets: 65536 Batches: 1 Memory Usage: 3936kB
  • Worker 0: actual time=0.037..0.037 rows=0 loops=1
  • Worker 1: actual time=0.038..0.038 rows=0 loops=1
20. 27.188 27.188 ↓ 1.7 39,577 1

Parallel Seq Scan on entrepot.t_dim_geographique_geo (cost=0.00..1,262.81 rows=23,281 width=50) (actual time=0.020..27.188 rows=39,577 loops=1)

  • Output: t_dim_geographique_geo.geo_pays, t_dim_geographique_geo.geo_libelle_region, t_dim_geographique_geo.geo_libelle_departement, t_dim_geographique_geo.geo_id_geographique