explain.depesz.com

PostgreSQL's explain analyze made readable

Result: hmDO

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

Group (cost=14,360,884.82..14,360,886.03 rows=121 width=19) (actual rows= loops=)

  • Group Key: dim.lb_delivery
2. 0.000 0.000 ↓ 0.0

Sort (cost=14,360,884.82..14,360,885.42 rows=242 width=19) (actual rows= loops=)

  • Sort Key: dim.lb_delivery
3. 0.000 0.000 ↓ 0.0

Gather (cost=14,360,849.83..14,360,875.24 rows=242 width=19) (actual rows= loops=)

  • Workers Planned: 2
4. 0.000 0.000 ↓ 0.0

Partial HashAggregate (cost=14,359,849.83..14,359,851.04 rows=121 width=19) (actual rows= loops=)

  • Group Key: dim.lb_delivery
5. 0.000 0.000 ↓ 0.0

Merge Join (cost=588,117.12..13,179,506.31 rows=472,137,408 width=19) (actual rows= loops=)

  • Merge Cond: (dim.dr_sk = dim_1.dr_sk)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.70..5,171,355.14 rows=29,357,990 width=27) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Parallel Index Scan using fa_drsk on fact_alarm dim (cost=0.56..1,986,919.65 rows=16,542,509 width=34) (actual rows= loops=)

  • Filter: (lb_spip IS NOT NULL)
8. 0.000 0.000 ↓ 0.0

Index Only Scan using drrd_iddisp on dimn_ref_region_disp (cost=0.14..0.17 rows=2 width=7) (actual rows= loops=)

  • Index Cond: (id_disp = (dim.id_disp)::text)
9. 0.000 0.000 ↓ 0.0

Materialize (cost=588,116.42..857,042.24 rows=2,229,925 width=12) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Merge Join (cost=588,116.42..851,467.43 rows=2,229,925 width=12) (actual rows= loops=)

  • Merge Cond: (frsc.dr_sk = dim_1.dr_sk)
11. 0.000 0.000 ↓ 0.0

Index Only Scan using frec_drsk on fact_rec_status_chg frsc (cost=0.43..43,369.64 rows=1,866,881 width=8) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Materialize (cost=588,115.99..774,767.65 rows=1,914,376 width=4) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Unique (cost=588,115.99..750,837.95 rows=1,914,376 width=366) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Sort (cost=588,115.99..592,901.93 rows=1,914,376 width=366) (actual rows= loops=)

  • Sort Key: dim_1.dr_sk, dim_1.scd_start_date, dim_1.scd_end_date, dim_1.scd_current, dim_1.id_disp, dim_1.lb_disp, dim_1.id_spip, dim_1.lb_spip, dim_1.id_delivery, dim_1.lb_delivery, dim_1.id_record, dim_1.dt_starting_measure, dim_1.dt_ending_measure, dim_1.id_offender, dim_1.cd_assignment_type, dim_1.cd_main_measure, dim_1.id_nationality, dim_1.lb_nationality, dim_1.cd_sex, dim_1.cd_main_zip_code, dim_1.lb_main_town, dim_1.cd_appi_number, dim_1.id_prisoner_initial, dim_1.id_prison, dim_1.lb_prison, dim_1.id_prisoner_current, dim_1.id_assignment_authority, dim_1.lb_assignment_authority, dim_1.dt_assignment_decision, dim_1.bl_biometrics_available, dim_1.lb_management_profile, dim_1.cd_current_status, dim_1.lb_current_status
15. 0.000 0.000 ↓ 0.0

Seq Scan on dimn_record dim_1 (cost=0.00..113,547.76 rows=1,914,376 width=366) (actual rows= loops=)