explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 9hD9

Settings
# exclusive inclusive rows x rows loops node
1. 2.007 41.884 ↓ 4.2 1,000 1

Result (cost=51,072.72..51,084.22 rows=236 width=306) (actual time=39.788..41.884 rows=1,000 loops=1)

2. 2.720 39.877 ↓ 4.2 1,000 1

Sort (cost=51,072.72..51,073.31 rows=236 width=282) (actual time=39.772..39.877 rows=1,000 loops=1)

  • Sort Key: tef2.blast_id, tef2.blast_content_id, tef2.surrogate_id
  • Sort Method: quicksort Memory: 290kB
3. 1.374 37.157 ↓ 4.2 1,000 1

Nested Loop (cost=1,033.59..51,063.42 rows=236 width=282) (actual time=4.898..37.157 rows=1,000 loops=1)

4. 2.910 27.783 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,033.04..39,189.39 rows=1,386 width=215) (actual time=4.876..27.783 rows=1,000 loops=1)

  • Join Filter: (tebd.bounce_id = tef2.bounce_code_id)
  • Rows Removed by Join Filter: 16000
5. 2.055 22.873 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,033.04..38,855.55 rows=1,386 width=206) (actual time=4.852..22.873 rows=1,000 loops=1)

  • Join Filter: (tebcd.bounce_cat_id = tef2.bounce_category_id)
  • Rows Removed by Join Filter: 5000
6. 1.598 19.818 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,033.04..38,729.74 rows=1,386 width=202) (actual time=4.836..19.818 rows=1,000 loops=1)

7. 1.450 13.220 ↑ 1.4 1,000 1

Nested Loop Left Join (cost=1,016.13..15,249.17 rows=1,386 width=162) (actual time=4.809..13.220 rows=1,000 loops=1)

8. 1.044 7.770 ↑ 1.4 1,000 1

Hash Join (cost=1,015.85..3,689.93 rows=1,386 width=154) (actual time=4.789..7.770 rows=1,000 loops=1)

  • Hash Cond: (tef2.blast_content_id = t_email_blast_dim.bc_identity_uuid)
9. 0.361 1.995 ↓ 2.7 1,000 1

Subquery Scan on tef2 (cost=0.42..2,557.97 rows=370 width=136) (actual time=0.042..1.995 rows=1,000 loops=1)

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

Limit (cost=0.42..2,545.47 rows=1,000 width=168) (actual time=0.040..1.634 rows=1,000 loops=1)

11. 1.460 1.460 ↑ 10.8 1,000 1

Index Scan using "t_email_f_current$idx4" on t_email_f_current tef (cost=0.42..27,548.01 rows=10,824 width=168) (actual time=0.039..1.460 rows=1,000 loops=1)

  • Index Cond: ((blast_id = '52aaf35f-a101-426d-ae70-70d707ad9498'::uuid) AND (ROW(blast_content_id, surrogate_id) > ROW('b4edc45d-d8d9-41c5-b625-1c0e49588857'::uuid, 0)))
12. 1.138 4.731 ↑ 1.0 2,191 1

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

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

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

14. 2.845 3.241 ↑ 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.482..3.241 rows=2,191 loops=1)

  • Recheck Cond: (bc_organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid)
  • Heap Blocks: exact=282
15. 0.396 0.396 ↑ 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.396..0.396 rows=2,191 loops=1)

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

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

  • Recheck Cond: (csc_organization_uuid = '550c683d-d32d-49ca-acfb-a757a86b5557'::uuid)
17. 0.009 0.009 ↓ 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.009..0.009 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 = tef2.blast_content_id) AND (targeted_person_uuid = tef2.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 = tef2.blast_content_id) AND (person_uuid = tef2.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.987 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.013 0.013 ↑ 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.010..0.013 rows=6 loops=1)

26. 1.988 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.012 0.012 ↑ 1.0 16 1

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

28. 8.000 8.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.008..0.008 rows=1 loops=1,000)

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