explain.depesz.com

PostgreSQL's explain analyze made readable

Result: wmzl

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

Nested Loop (cost=47,421.58..48,627.10 rows=200 width=87) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=47,421.29..47,431.60 rows=200 width=72) (actual rows= loops=)

  • Group Key: all_domains.domains_id, all_domains.block_type
3. 0.000 0.000 ↓ 0.0

Sort (cost=47,421.29..47,423.24 rows=781 width=48) (actual rows= loops=)

  • Sort Key: all_domains.domains_id, all_domains.block_type
4. 0.000 0.000 ↓ 0.0

Subquery Scan on all_domains (cost=47,368.14..47,383.76 rows=781 width=48) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

HashAggregate (cost=47,368.14..47,375.95 rows=781 width=48) (actual rows= loops=)

  • Group Key: aad.domains_id, supplypartner.id, ('s'::text)
6. 0.000 0.000 ↓ 0.0

Append (cost=1.12..47,362.29 rows=781 width=48) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.12..21.47 rows=1 width=48) (actual rows= loops=)

  • Join Filter: (supplypartner.advertiserfilter_id = aad.advertiserfilter_id)
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.69..16.73 rows=1 width=24) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Index Scan using supplypartner_pkey on supplypartner (cost=0.27..8.29 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = 8,464)
10. 0.000 0.000 ↓ 0.0

Index Scan using advertiserfilter_pkey on advertiserfilter a (cost=0.42..8.44 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (id = supplypartner.advertiserfilter_id)
  • Filter: domainsblacklist
11. 0.000 0.000 ↓ 0.0

Index Only Scan using advertiserfilter_advertiserdomain_pkey on advertiserfilter_advertiserdomain aad (cost=0.43..4.74 rows=1 width=16) (actual rows= loops=)

  • Index Cond: ((advertiserfilter_id = a.id) AND (domains_id = ANY ('{81112,259604,319130,5704464,7568898,8618363}'::integer[])))
12. 0.000 0.000 ↓ 0.0

Gather (cost=1,123.54..47,307.48 rows=779 width=48) (actual rows= loops=)

  • Workers Planned: 2
13. 0.000 0.000 ↓ 0.0

Nested Loop (cost=123.54..46,229.58 rows=325 width=48) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Nested Loop (cost=123.11..35,622.21 rows=2,286 width=24) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Nested Loop (cost=122.69..34,299.97 rows=2,672 width=16) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on partnership_website (cost=122.27..23,444.60 rows=2,672 width=8) (actual rows= loops=)

  • Recheck Cond: (partnerships_id = 691,348)
17. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on partnerships_id_index (cost=0.00..120.66 rows=6,413 width=0) (actual rows= loops=)

  • Index Cond: (partnerships_id = 691,348)
18. 0.000 0.000 ↓ 0.0

Index Scan using website_pkey on website (cost=0.42..4.06 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = partnership_website.websites_id)
19. 0.000 0.000 ↓ 0.0

Index Scan using advertiserfilter_pkey on advertiserfilter af (cost=0.42..0.49 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (id = website.advertiserfilter_id)
  • Filter: domainsblacklist
20. 0.000 0.000 ↓ 0.0

Index Only Scan using advertiserfilter_advertiserdomain_pkey on advertiserfilter_advertiserdomain aad_1 (cost=0.43..4.63 rows=1 width=16) (actual rows= loops=)

  • Index Cond: ((advertiserfilter_id = website.advertiserfilter_id) AND (domains_id = ANY ('{81112,259604,319130,5704464,7568898,8618363}'::integer[])))
21. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.27..21.62 rows=1 width=48) (actual rows= loops=)

  • Join Filter: (partnership.advertiserfilter_id = aad_2.advertiserfilter_id)
22. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.84..16.87 rows=1 width=24) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Index Scan using partnership_pkey on partnership (cost=0.42..8.44 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (id = 691,348)
24. 0.000 0.000 ↓ 0.0

Index Scan using advertiserfilter_pkey on advertiserfilter af_1 (cost=0.42..8.44 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (id = partnership.advertiserfilter_id)
  • Filter: domainsblacklist
25. 0.000 0.000 ↓ 0.0

Index Only Scan using advertiserfilter_advertiserdomain_pkey on advertiserfilter_advertiserdomain aad_2 (cost=0.43..4.74 rows=1 width=16) (actual rows= loops=)

  • Index Cond: ((advertiserfilter_id = af_1.id) AND (domains_id = ANY ('{81112,259604,319130,5704464,7568898,8618363}'::integer[])))
26. 0.000 0.000 ↓ 0.0

Index Scan using advertiserdomain_pkey on advertiserdomain (cost=0.29..5.97 rows=1 width=23) (actual rows= loops=)

  • Index Cond: (id = all_domains.domains_id)