explain.depesz.com

PostgreSQL's explain analyze made readable

Result: TEI

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

Nested Loop Left Join (cost=13.19..1,268,757.91 rows=1 width=93) (actual rows= loops=)

  • Join Filter: (lower((cc.last_name)::text) ~ (('\y'::text || (sn2.similar_name)::text) || '\y'::text))
  • Filter: (((sn1.similar_name IS NOT NULL) AND (lower((cc.last_name)::text) ~ '\yEllis\y'::text)) OR ((sn2.similar_name IS NOT NULL) AND (lower((cc.first_name)::text) ~ '\yEllis\y'::text)))
2.          

CTE sname

3. 0.000 0.000 ↓ 0.0

Function Scan on get_similar_names (cost=0.25..12.75 rows=1,000 width=36) (actual rows= loops=)

  • Filter: ((similar_name)::text !~~* 'Ellis'::text)
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.44..1,209,935.16 rows=1,470 width=89) (actual rows= loops=)

  • Join Filter: (lower((cc.first_name)::text) ~ (('\y'::text || (sn1.similar_name)::text) || '\y'::text))
5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.44..1,201,105.16 rows=294 width=57) (actual rows= loops=)

  • Filter: ((ca.state IS NULL) OR (lower((ca.state)::text) = 'ca'::text))
6. 0.000 0.000 ↓ 0.0

Seq Scan on contributions_contributors cc (cost=0.00..1,181,040.46 rows=7,760 width=42) (actual rows= loops=)

  • Filter: ((lower((last_name)::text) ~ '\yEllis\y'::text) OR (lower((first_name)::text) ~ '\yEllis\y'::text))
7. 0.000 0.000 ↓ 0.0

Index Scan using contributions_addresses_pkey on contributions_addresses ca (cost=0.44..2.57 rows=1 width=23) (actual rows= loops=)

  • Index Cond: (cc.address_id = id)
8. 0.000 0.000 ↓ 0.0

CTE Scan on sname sn1 (cost=0.00..20.00 rows=1,000 width=32) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

CTE Scan on sname sn2 (cost=0.00..20.00 rows=1,000 width=32) (actual rows= loops=)