explain.depesz.com

PostgreSQL's explain analyze made readable

Result: IOc1 : Optimization for: plan #nFkI

Settings

Optimization path:

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

Limit (cost=8,713.50..8,713.50 rows=1 width=2,171) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=8,713.50..8,713.50 rows=1 width=2,171) (actual rows= loops=)

  • Sort Key: receipts.contribution_amount DESC
3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=3.94..8,713.49 rows=1 width=2,171) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=3.52..8,711.93 rows=1 width=1,891) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=3.10..8,710.37 rows=1 width=1,687) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=2.69..8,708.81 rows=1 width=1,415) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.27..8,707.25 rows=1 width=1,211) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.83..8,496.30 rows=133 width=869) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.40..8,269.38 rows=143 width=816) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.83..5.24 rows=1 width=476) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Index Scan using ix_committees_super_committee_id on committees committees_1 (cost=0.42..2.79 rows=1 width=204) (actual rows= loops=)

  • Index Cond: (super_committee_id = 47823)
  • Filter: (id = ANY ('{131597,131596,131595}'::integer[]))
12. 0.000 0.000 ↓ 0.0

Index Scan using super_committees_pkey on super_committees super_committees_1 (cost=0.41..2.43 rows=1 width=272) (actual rows= loops=)

  • Index Cond: (id = 47823)
13. 0.000 0.000 ↓ 0.0

Index Scan using ix_receipts_recipient_committee_id on receipts (cost=0.56..8,187.27 rows=7,688 width=340) (actual rows= loops=)

  • Index Cond: (recipient_committee_id = committees_1.id)
  • Filter: (donor_individual_id IS NOT NULL)
14. 0.000 0.000 ↓ 0.0

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

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

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

  • Index Cond: (id = individual_matches.super_individual_id)
  • Filter: ((employer_tsvector @@ '''facebook'':*'::tsquery) OR (employer_tsvector @@ '''google'':*'::tsquery))
16. 0.000 0.000 ↓ 0.0

Index Scan using committees_pkey on committees committees_2 (cost=0.42..1.56 rows=1 width=204) (actual rows= loops=)

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

Index Scan using super_committees_pkey on super_committees super_committees_3 (cost=0.41..1.56 rows=1 width=272) (actual rows= loops=)

  • Index Cond: (committees_2.super_committee_id = id)
18. 0.000 0.000 ↓ 0.0

Index Scan using committees_pkey on committees committees_3 (cost=0.42..1.56 rows=1 width=204) (actual rows= loops=)

  • Index Cond: (receipts.conduit_committee_id = id)
19. 0.000 0.000 ↓ 0.0

Index Scan using super_committees_pkey on super_committees super_committees_2 (cost=0.41..1.56 rows=1 width=272) (actual rows= loops=)

  • Index Cond: (committees_3.super_committee_id = id)