explain.depesz.com

PostgreSQL's explain analyze made readable

Result: dIyB

Settings
# exclusive inclusive rows x rows loops node
1. 3.000 4.117 ↑ 1.0 6 1

Gather Motion 6:1 (slice4; segments: 6) (cost=0.00..1,389,268,366,745.10 rows=6 width=28) (actual time=3.469..4.117 rows=6 loops=1)

  • (slice0) Executor memory: 255K bytes.
  • (slice1) Executor memory: 60K bytes avg x 6 workers, 60K bytes max (seg0).
  • (slice2) Executor memory: 60K bytes avg x 6 workers, 60K bytes max (seg0).
  • (slice3) Executor memory: 60K bytes avg x 6 workers, 60K bytes max (seg0).
  • (slice4) Executor memory: 220K bytes avg x 6 workers, 232K bytes max (seg0).
  • (slice5)
  • (slice6)
  • (slice7)
  • (slice8)
  • (slice9)
  • (slice10)
2. 1.105 1.117 ↓ 2.0 2 1

Result (cost=0.00..1,389,268,366,745.10 rows=1 width=28) (actual time=1.108..1.117 rows=2 loops=1)

  • SubPlan 1 (slice4; segments: 6)
  • SubPlan 2 (slice4; segments: 6)
  • SubPlan 3 (slice4; segments: 6)
3. 0.000 0.012 ↑ 83.5 2 1

Seq Scan on party_person_hist_intervals_tmp (cost=0.00..1,324,046.30 rows=167 width=20) (actual time=0.011..0.012 rows=2 loops=1)

4. 0.010 1.050 ↑ 1.0 1 2

Aggregate (cost=0.00..431.00 rows=1 width=4) (actual time=0.523..0.525 rows=1 loops=2)

5. 0.012 1.040 ↑ 1.0 1 2

Result (cost=0.00..431.00 rows=1 width=4) (actual time=0.011..0.520 rows=1 loops=2)

  • Filter: ((party_person_hist_intervals_tmp.party_id = party_person_hist_intervals_tmp_1.party_id) AND (party_person_hist_intervals_tmp_1.bs_start_date <= party_person_hist_intervals_tmp.bs_start_date))
6. 0.000 1.028 ↑ 2.0 1 2

Materialize (cost=0.00..431.00 rows=2 width=12) (actual time=0.006..0.514 rows=1 loops=2)

7. 1.846 1.866 ↑ 2.0 1 1

Broadcast Motion 6:6 (slice1; segments: 6) (cost=0.00..431.00 rows=2 width=12) (actual time=0.637..1.866 rows=1 loops=1)

8. 0.020 0.020 ↑ 1.0 1 1

Seq Scan on party_person_hist_intervals_tmp party_person_hist_intervals_tmp_1 (cost=0.00..431.00 rows=1 width=12) (actual time=0.020..0.020 rows=1 loops=1)

  • Filter: ((dataset_code_source)::text = 'CORE'::text)
9. 0.002 0.018 ↑ 1.0 1 2

Aggregate (cost=0.00..431.40 rows=1 width=4) (actual time=0.009..0.009 rows=1 loops=2)

10. 0.006 0.016 ↓ 2.0 2 2

Result (cost=0.00..431.40 rows=1 width=4) (actual time=0.007..0.008 rows=2 loops=2)

  • Filter: ((party_person_hist_intervals_tmp.party_id = party_person_hist_intervals_tmp_2.party_id) AND (party_person_hist_intervals_tmp_2.bs_start_date <= party_person_hist_intervals_tmp.bs_start_date))
11. 0.004 0.010 ↑ 1.0 3 2

Materialize (cost=0.00..431.00 rows=3 width=12) (actual time=0.005..0.005 rows=3 loops=2)

12. 0.000 0.006 ↑ 1.0 3 1

Broadcast Motion 6:6 (slice2; segments: 6) (cost=0.00..431.00 rows=3 width=12) (actual time=0.003..0.006 rows=3 loops=1)

13. 0.019 0.019 ↑ 1.0 1 1

Seq Scan on party_person_hist_intervals_tmp party_person_hist_intervals_tmp_2 (cost=0.00..431.00 rows=1 width=12) (actual time=0.019..0.019 rows=1 loops=1)

  • Filter: ((dataset_code_source)::text = 'party_mas_dlt'::text)
14. 0.004 0.016 ↑ 1.0 1 2

Aggregate (cost=0.00..431.26 rows=1 width=4) (actual time=0.008..0.008 rows=1 loops=2)

15. 0.002 0.012 ↑ 1.0 1 2

Result (cost=0.00..431.26 rows=1 width=4) (actual time=0.006..0.006 rows=1 loops=2)

  • Filter: ((party_person_hist_intervals_tmp.party_id = party_person_hist_intervals_tmp_3.party_id) AND (party_person_hist_intervals_tmp_3.bs_start_date <= party_person_hist_intervals_tmp.bs_start_date))
16. 0.003 0.010 ↑ 1.0 2 2

Materialize (cost=0.00..431.00 rows=2 width=12) (actual time=0.005..0.005 rows=2 loops=2)

17. 0.000 0.007 ↑ 1.0 2 1

Broadcast Motion 6:6 (slice3; segments: 6) (cost=0.00..431.00 rows=2 width=12) (actual time=0.005..0.007 rows=2 loops=1)

18. 0.019 0.019 ↑ 1.0 1 1

Seq Scan on party_person_hist_intervals_tmp party_person_hist_intervals_tmp_3 (cost=0.00..431.00 rows=1 width=12) (actual time=0.016..0.019 rows=1 loops=1)

  • Filter: ((dataset_code_source)::text = 'party_det_mas_dlt'::text)
Planning time : 31.708 ms
Execution time : 38.434 ms