explain.depesz.com

PostgreSQL's explain analyze made readable

Result: uO9i : Optimization for: Blockades_AT5; plan #e4a4

Settings

Optimization path:

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

Gather (cost=1,652,934.12..6,695,540.27 rows=231,468 width=92) (actual rows= loops=)

  • Workers Planned: 2
2. 0.000 0.000 ↓ 0.0

Hash Join (cost=1,651,934.12..6,671,393.47 rows=96,445 width=92) (actual rows= loops=)

  • Hash Cond: ((pm.pm_intermediary_code)::text = (i.code)::text)
3. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=1,651,932.31..6,671,108.68 rows=96,445 width=55) (actual rows= loops=)

  • Hash Cond: ((pm.pm_remark)::text = (s.remark)::text)
4. 0.000 0.000 ↓ 0.0

Parallel Hash Left Join (cost=1,532,395.61..6,533,825.91 rows=96,445 width=71) (actual rows= loops=)

  • Hash Cond: ((pm.external_reference)::text = (ei.reference)::text)
5. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=1,527,391.79..6,524,487.14 rows=96,445 width=103) (actual rows= loops=)

  • Hash Cond: ((pm.pm_fundraiser = b.fundraiser_id) AND (br.id = b.blockade_register_id) AND ((pm.pm_medium)::text = (b.medium)::text) AND ((pm.pm_contact_type)::text = (b.contact_point_type)::text) AND (cp.id= b.contact_point_id))
6. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=323,201.61..4,596,467.81 rows=11,424,164 width=125) (actual rows= loops=)

  • Hash Cond: ((pm.contact_point)::text = (cp.contact_point)::text)
7. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=542.17..3,610,874.84 rows=11,424,164 width=134) (actual rows= loops=)

  • Hash Cond: ((pm.input_file)::text = (f.name)::text)
8. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.25..3,580,339.36 rows=11,424,164 width=154) (actual rows= loops=)

  • Hash Cond: ((pm.blockade_register)::text = (br.code)::text)
9. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on pa_migration_blockades pm (cost=0.00..3,538,795.70 rows=11,424,164 width=155) (actual rows= loops=)

  • Filter: (pm_fundraiser IS NOT NULL)
10. 0.000 0.000 ↓ 0.0

Hash (cost=1.11..1.11 rows=11 width=19) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Seq Scan on blockade_register br (cost=0.00..1.11 rows=11 width=19) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Hash (cost=316.52..316.52 rows=17,952 width=30) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on file f (cost=0.00..316.52 rows=17,952 width=30) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=195,593.42..195,593.42 rows=6,921,042 width=22) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on contact_point cp (cost=0.00..195,593.42 rows=6,921,042 width=22) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=622,413.90..622,413.90 rows=19,192,590 width=38) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on blockade b (cost=0.00..622,413.90 rows=19,192,590 width=38) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=3,495.81..3,495.81 rows=45,681 width=142) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on external_information ei (cost=0.00..3,495.81 rows=45,681 width=142) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=78,241.31..78,241.31 rows=2,135,631 width=28) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on session s (cost=0.00..78,241.31 rows=2,135,631 width=28) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Hash (cost=1.36..1.36 rows=36 width=12) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Seq Scan on intermediary i (cost=0.00..1.36 rows=36 width=12) (actual rows= loops=)