explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ctr

Settings

Optimization(s) for this plan:

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

Finalize Aggregate (cost=25,230.87..25,230.88 rows=1 width=8) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Gather (cost=25,230.66..25,230.87 rows=2 width=8) (actual rows= loops=)

  • Workers Planned: 2
3. 0.000 0.000 ↓ 0.0

Partial Aggregate (cost=24,230.66..24,230.67 rows=1 width=8) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.85..24,230.66 rows=1 width=0) (actual rows= loops=)

  • Join Filter: ((cc.marchex_campaign_id)::text = (cd.campaign_id)::text)
5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.85..24,196.89 rows=1 width=16) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.43..24,189.10 rows=1 width=20) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on leads (cost=0.00..23,401.57 rows=94 width=24) (actual rows= loops=)

  • Filter: ((source_timestamp >= '2016-02-01 00:00:00+00'::timestamp with time zone) AND (source_timestamp <= '2019-02-28 23:59:59+00'::timestamp with time zone) AND (location_id = 90) AND (type = 1) AND (customer_organization_id = 75))
8. 0.000 0.000 ↓ 0.0

Index Scan using call_data_call_id_unique on call_data cd (cost=0.43..8.38 rows=1 width=37) (actual rows= loops=)

  • Index Cond: ((call_id)::text = (leads.source_id)::text)
  • Filter: (appointment_is_booked = ANY ('{2,4,6}'::integer[]))
9. 0.000 0.000 ↓ 0.0

Index Scan using leads_to_phone_lead_id_index on leads_to_phone (cost=0.42..7.79 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (lead_id = leads.id)
10. 0.000 0.000 ↓ 0.0

Seq Scan on call_campaigns cc (cost=0.00..23.34 rows=834 width=21) (actual rows= loops=)