explain.depesz.com

PostgreSQL's explain analyze made readable

Result: kPGy

Settings
# exclusive inclusive rows x rows loops node
1. 2.066 43.045 ↓ 4.2 1,000 1

Result (cost=48,843.44..48,854.95 rows=236 width=306) (actual time=40.888..43.045 rows=1,000 loops=1)

2. 2.454 40.979 ↓ 4.2 1,000 1

Sort (cost=48,843.44..48,844.03 rows=236 width=282) (actual time=40.876..40.979 rows=1,000 loops=1)

  • Sort Key: tef.blast_id, tef.surrogate_id
  • Sort Method: quicksort Memory: 290kB
3. 1.665 38.525 ↓ 4.2 1,000 1

Nested Loop (cost=1,033.59..48,834.14 rows=236 width=282) (actual time=5.308..38.525 rows=1,000 loops=1)

4. 2.801 27.860 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,033.04..36,960.12 rows=1,386 width=215) (actual time=5.281..27.860 rows=1,000 loops=1)

  • Join Filter: (tebd.bounce_id = tef.bounce_code_id)
  • Rows Removed by Join Filter: 16000
5. 1.991 23.059 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,033.04..36,626.28 rows=1,386 width=206) (actual time=5.254..23.059 rows=1,000 loops=1)

  • Join Filter: (tebcd.bounce_cat_id = tef.bounce_category_id)
  • Rows Removed by Join Filter: 5000
6. 1.423 20.068 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,033.04..36,500.47 rows=1,386 width=202) (actual time=5.235..20.068 rows=1,000 loops=1)

7. 1.235 13.645 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,016.13..13,019.89 rows=1,386 width=162) (actual time=5.213..13.645 rows=1,000 loops=1)

8. 1.065 8.410 ↑ 1.4 1,000 1

Hash Join (cost=1,015.85..1,460.65 rows=1,386 width=154) (actual time=5.191..8.410 rows=1,000 loops=1)

  • Hash Cond: (tef.blast_content_id = t_email_blast_dim.bc_identity_uuid)
9. 0.355 2.218 ↓ 2.7 1,000 1

Subquery Scan on tef (cost=0.42..328.70 rows=370 width=136) (actual time=0.043..2.218 rows=1,000 loops=1)

  • Filter: (tef.organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid)
10. 0.218 1.863 ↑ 1.0 1,000 1

Limit (cost=0.42..316.20 rows=1,000 width=432) (actual time=0.041..1.863 rows=1,000 loops=1)

11. 1.645 1.645 ↑ 240.2 1,000 1

Index Scan using "t_email_f_current$idx4" on t_email_f_current tef_1 (cost=0.42..75,834.44 rows=240,153 width=432) (actual time=0.040..1.645 rows=1,000 loops=1)

  • Index Cond: ((blast_id = '52aaf35f-a101-426d-ae70-70d707ad9498'::uuid) AND (surrogate_id > 0))
12. 1.272 5.127 ↑ 1.0 2,191 1

Hash (cost=987.98..987.98 rows=2,195 width=50) (actual time=5.127..5.127 rows=2,191 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 201kB
13. 0.399 3.855 ↑ 1.0 2,191 1

Append (cost=101.27..987.98 rows=2,195 width=50) (actual time=0.450..3.855 rows=2,191 loops=1)

14. 3.077 3.443 ↑ 1.0 2,191 1

Bitmap Heap Scan on t_email_blast_dim (cost=101.27..969.65 rows=2,191 width=50) (actual time=0.449..3.443 rows=2,191 loops=1)

  • Recheck Cond: (bc_organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid)
  • Heap Blocks: exact=282
15. 0.366 0.366 ↑ 1.0 2,191 1

Bitmap Index Scan on "t_email_blast_dim$idx1" (cost=0.00..100.72 rows=2,191 width=0) (actual time=0.366..0.366 rows=2,191 loops=1)

  • Index Cond: (bc_organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid)
16. 0.002 0.013 ↓ 0.0 0 1

Bitmap Heap Scan on t_communication_series_dim (cost=4.31..18.33 rows=4 width=57) (actual time=0.013..0.013 rows=0 loops=1)

  • Recheck Cond: (csc_organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid)
17. 0.011 0.011 ↓ 0.0 0 1

Bitmap Index Scan on "t_communication_series_dim$idx3" (cost=0.00..4.31 rows=4 width=0) (actual time=0.011..0.011 rows=0 loops=1)

  • Index Cond: (csc_organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid)
18. 1.000 4.000 ↓ 0.0 0 1,000

GroupAggregate (cost=0.28..8.32 rows=1 width=40) (actual time=0.004..0.004 rows=0 loops=1,000)

  • Group Key: i.targeted_person_uuid, i.referring_entity_id
19. 3.000 3.000 ↓ 0.0 0 1,000

Index Scan using "t_interaction$idx3" on t_interaction i (cost=0.28..8.30 rows=1 width=32) (actual time=0.003..0.003 rows=0 loops=1,000)

  • Index Cond: ((referring_entity_id = tef.blast_content_id) AND (targeted_person_uuid = tef.person_uuid))
  • Filter: (entity_type = 'TrackingLink'::text)
20. 1.000 5.000 ↑ 1.0 1 1,000

Aggregate (cost=16.91..16.92 rows=1 width=40) (actual time=0.005..0.005 rows=1 loops=1,000)

21. 1.000 4.000 ↓ 0.0 0 1,000

Nested Loop Left Join (cost=0.85..16.90 rows=1 width=57) (actual time=0.004..0.004 rows=0 loops=1,000)

22. 3.000 3.000 ↓ 0.0 0 1,000

Index Scan using "t_activity$idx2" on t_activity ta (cost=0.43..8.45 rows=1 width=61) (actual time=0.003..0.003 rows=0 loops=1,000)

  • Index Cond: ((referring_entity_id = tef.blast_content_id) AND (person_uuid = tef.person_uuid))
  • Filter: (activity_type <> ALL ('{Unsubscribe,SubMgmt,P2PRegistration}'::text[]))
23. 0.000 0.000 ↓ 0.0 0

Index Scan using "t_donation_intent$idx5" on t_donation_intent di (cost=0.42..8.44 rows=1 width=28) (never executed)

  • Index Cond: (activity_uuid = ta.uuid)
24. 0.986 1.000 ↑ 1.0 6 1,000

Materialize (cost=0.00..1.09 rows=6 width=12) (actual time=0.000..0.001 rows=6 loops=1,000)

25. 0.014 0.014 ↑ 1.0 6 1

Seq Scan on t_email_bounce_cat_dim tebcd (cost=0.00..1.06 rows=6 width=12) (actual time=0.012..0.014 rows=6 loops=1)

26. 1.987 2.000 ↑ 1.0 16 1,000

Materialize (cost=0.00..1.24 rows=16 width=17) (actual time=0.000..0.002 rows=16 loops=1,000)

27. 0.013 0.013 ↑ 1.0 16 1

Seq Scan on t_email_bounce_dim tebd (cost=0.00..1.16 rows=16 width=17) (actual time=0.007..0.013 rows=16 loops=1)

28. 9.000 9.000 ↑ 1.0 1 1,000

Index Scan using "t_person_dim$idx1" on t_person_dim_backend p (cost=0.56..8.57 rows=1 width=135) (actual time=0.009..0.009 rows=1 loops=1,000)

  • Index Cond: ((organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid) AND (person_uuid = tef.person_uuid))