explain.depesz.com

PostgreSQL's explain analyze made readable

Result: uxm

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

Merge Join (cost=698,030.61..2,468,140.10 rows=93,455 width=160) (actual rows= loops=)

  • Merge Cond: (super_individuals.id = super_individuals_2.id)
2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=70,901.75..1,840,468.65 rows=1,038 width=124) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=70,901.32..70,937.67 rows=2,077 width=44) (actual rows= loops=)

  • Group Key: super_individuals_1.id
4. 0.000 0.000 ↓ 0.0

Sort (cost=70,901.32..70,906.51 rows=2,077 width=12) (actual rows= loops=)

  • Sort Key: super_individuals_1.id
5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1,002.16..70,786.88 rows=2,077 width=12) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Index Only Scan using super_committees_pkey on super_committees super_committees_1 (cost=0.29..8.31 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = 1633)
7. 0.000 0.000 ↓ 0.0

Gather (cost=1,001.87..70,757.80 rows=2,077 width=16) (actual rows= loops=)

  • Workers Planned: 2
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.87..69,550.10 rows=865 width=16) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.44..62,643.73 rows=825 width=24) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..59,005.88 rows=825 width=24) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..51,764.37 rows=865 width=16) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on committees committees_1 (cost=0.00..9,837.64 rows=2 width=8) (actual rows= loops=)

  • Filter: (super_committee_id = 1633)
13. 0.000 0.000 ↓ 0.0

Index Scan using ix_receipts_recipient_committee_id on receipts (cost=0.57..20,909.68 rows=5,369 width=16) (actual rows= loops=)

  • Index Cond: (recipient_committee_id = committees_1.id)
14. 0.000 0.000 ↓ 0.0

Index Scan using ix_individual_matches_individual_id on individual_matches (cost=0.43..8.37 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (individual_id = receipts.donor_individual_id)
15. 0.000 0.000 ↓ 0.0

Index Only Scan using super_individuals_pkey on super_individuals super_individuals_1 (cost=0.43..4.41 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = individual_matches.super_individual_id)
16. 0.000 0.000 ↓ 0.0

Index Only Scan using individuals_pkey on individuals (cost=0.43..8.37 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = receipts.donor_individual_id)
17. 0.000 0.000 ↓ 0.0

Index Scan using super_individuals_pkey on super_individuals (cost=0.43..851.95 rows=1 width=80) (actual rows= loops=)

  • Index Cond: (id = super_individuals_1.id)
  • Filter: (NOT (SubPlan 1))
18.          

SubPlan (for Index Scan)

19. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.58..843.60 rows=1 width=0) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.29..835.28 rows=1 width=4) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.86..830.82 rows=1 width=4) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.42..822.45 rows=1 width=12) (actual rows= loops=)

  • Join Filter: (receipts_2.recipient_committee_id = committees_1_2.id)
23. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..802.50 rows=74 width=12) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Index Scan using ix_individual_matches_super_individual_id on individual_matches individual_matches_2 (cost=0.43..28.66 rows=12 width=4) (actual rows= loops=)

  • Index Cond: (super_individual_id = super_individuals.id)
25. 0.000 0.000 ↓ 0.0

Index Scan using ix_receipts_donor_individual_id on receipts receipts_2 (cost=0.57..64.22 rows=27 width=8) (actual rows= loops=)

  • Index Cond: (donor_individual_id = individual_matches_2.individual_id)
26. 0.000 0.000 ↓ 0.0

Materialize (cost=0.42..13.30 rows=6 width=8) (actual rows= loops=)

27. 0.000 0.000 ↓ 0.0

Index Scan using ix_committees_super_committee_id on committees committees_1_2 (cost=0.42..13.27 rows=6 width=8) (actual rows= loops=)

  • Index Cond: (super_committee_id = 1828)
28. 0.000 0.000 ↓ 0.0

Index Only Scan using individuals_pkey on individuals individuals_2 (cost=0.43..8.37 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = receipts_2.donor_individual_id)
29. 0.000 0.000 ↓ 0.0

Index Only Scan using super_individuals_pkey on super_individuals super_individuals_1_1 (cost=0.43..4.45 rows=1 width=0) (actual rows= loops=)

  • Index Cond: (id = super_individuals.id)
30. 0.000 0.000 ↓ 0.0

Index Only Scan using super_committees_pkey on super_committees super_committees_1_2 (cost=0.29..8.31 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = 1828)
31. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=627,128.86..627,443.84 rows=17,999 width=44) (actual rows= loops=)

  • Group Key: super_individuals_2.id
32. 0.000 0.000 ↓ 0.0

Sort (cost=627,128.86..627,173.86 rows=17,999 width=12) (actual rows= loops=)

  • Sort Key: super_individuals_2.id
33. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1,002.16..625,856.72 rows=17,999 width=12) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Index Only Scan using super_committees_pkey on super_committees super_committees_1_1 (cost=0.29..8.31 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = 2054)
35. 0.000 0.000 ↓ 0.0

Gather (cost=1,001.87..625,668.43 rows=17,999 width=16) (actual rows= loops=)

  • Workers Planned: 2
36. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.87..622,868.53 rows=7,500 width=16) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.44..563,021.72 rows=7,149 width=24) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..531,498.13 rows=7,149 width=24) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..468,693.73 rows=7,502 width=16) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on committees committees_1_1 (cost=0.00..9,837.64 rows=22 width=8) (actual rows= loops=)

  • Filter: (super_committee_id = 2054)
41. 0.000 0.000 ↓ 0.0

Index Scan using ix_receipts_recipient_committee_id on receipts receipts_1 (cost=0.57..20,803.40 rows=5,369 width=16) (actual rows= loops=)

  • Index Cond: (recipient_committee_id = committees_1_1.id)
42. 0.000 0.000 ↓ 0.0

Index Scan using ix_individual_matches_individual_id on individual_matches individual_matches_1 (cost=0.43..8.37 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (individual_id = receipts_1.donor_individual_id)
43. 0.000 0.000 ↓ 0.0

Index Only Scan using super_individuals_pkey on super_individuals super_individuals_2 (cost=0.43..4.41 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = individual_matches_1.super_individual_id)
44. 0.000 0.000 ↓ 0.0

Index Only Scan using individuals_pkey on individuals individuals_1 (cost=0.43..8.37 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = receipts_1.donor_individual_id)