explain.depesz.com

PostgreSQL's explain analyze made readable

Result: OJxI

Settings
# exclusive inclusive rows x rows loops node
1. 223.649 1,093.793 ↓ 106.0 106 1

HashAggregate (cost=4,984.71..4,984.72 rows=1 width=538) (actual time=1,093.499..1,093.793 rows=106 loops=1)

2. 266.776 870.144 ↓ 24,398.0 24,398 1

Nested Loop Left Join (cost=0.00..4,984.63 rows=1 width=538) (actual time=4.134..870.144 rows=24,398 loops=1)

3. 106.461 383.786 ↓ 24,398.0 24,398 1

Nested Loop Left Join (cost=0.00..4,984.35 rows=1 width=527) (actual time=4.086..383.786 rows=24,398 loops=1)

  • Join Filter: (gc.address_to_section_id = a2s.id)
4. 2.017 40.425 ↓ 103.0 103 1

Nested Loop (cost=0.00..4,765.01 rows=1 width=523) (actual time=3.637..40.425 rows=103 loops=1)

5. 0.756 35.730 ↓ 103.0 103 1

Nested Loop (cost=0.00..4,756.60 rows=1 width=165) (actual time=3.569..35.730 rows=103 loops=1)

6. 0.070 34.169 ↑ 1.0 1 1

Nested Loop Left Join (cost=0.00..4,748.15 rows=1 width=146) (actual time=3.449..34.169 rows=1 loops=1)

  • Join Filter: (c.id = contr.contact_id)
7. 0.084 0.084 ↑ 1.0 1 1

Index Scan using _contacts_pkey on _contacts c (cost=0.00..8.37 rows=1 width=113) (actual time=0.073..0.084 rows=1 loops=1)

  • Index Cond: (id = 4845782)
8. 34.015 34.015 ↑ 1.0 1 1

Seq Scan on dg_contractors_all contr (cost=0.00..4,739.76 rows=1 width=37) (actual time=3.317..34.015 rows=1 loops=1)

  • Filter: (contact_id = 4845782)
9. 0.805 0.805 ↓ 103.0 103 1

Index Scan using address_to_section_section_id_section_idx on address_to_section a2s (cost=0.00..8.45 rows=1 width=23) (actual time=0.092..0.805 rows=103 loops=1)

  • Index Cond: ((section_id = 4845782) AND ((section)::text = 'contacts'::text))
10. 2.678 2.678 ↑ 1.0 1 103

Index Scan using address_pkey on address a (cost=0.00..8.39 rows=1 width=370) (actual time=0.022..0.026 rows=1 loops=103)

  • Index Cond: (id = a2s.address_id)
11. 101.249 236.900 ↑ 2.7 237 103

Append (cost=0.00..211.34 rows=640 width=8) (actual time=0.323..2.300 rows=237 loops=103)

12. 1.236 1.236 ↓ 0.0 0 103

Index Scan using groups_contacts_address_to_section_id_idx on groups_contacts gc (cost=0.00..8.27 rows=1 width=8) (actual time=0.012..0.012 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
13. 1.339 2.369 ↓ 0.0 0 103

Bitmap Heap Scan on groups_contacts__accounts gc (cost=4.27..9.60 rows=2 width=8) (actual time=0.023..0.023 rows=0 loops=103)

  • Recheck Cond: (address_to_section_id = a2s.id)
14. 1.030 1.030 ↓ 0.0 0 103

Bitmap Index Scan on idx_groups_contacts__accounts_address_to_section_id (cost=0.00..4.27 rows=2 width=0) (actual time=0.010..0.010 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
15. 1.545 2.575 ↓ 0.0 0 103

Bitmap Heap Scan on groups_contacts__assets gc (cost=4.27..9.60 rows=2 width=8) (actual time=0.025..0.025 rows=0 loops=103)

  • Recheck Cond: (address_to_section_id = a2s.id)
16. 1.030 1.030 ↓ 0.0 0 103

Bitmap Index Scan on groups_contacts__assets_idx_groups_contacts__blicenses_address_ (cost=0.00..4.27 rows=2 width=0) (actual time=0.010..0.010 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
17. 1.236 2.266 ↓ 0.0 0 103

Bitmap Heap Scan on groups_contacts__blicenses gc (cost=4.27..9.60 rows=2 width=8) (actual time=0.022..0.022 rows=0 loops=103)

  • Recheck Cond: (address_to_section_id = a2s.id)
18. 1.030 1.030 ↓ 0.0 0 103

Bitmap Index Scan on idx_groups_contacts__blicenses_address_to_section_id (cost=0.00..4.27 rows=2 width=0) (actual time=0.010..0.010 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
19. 0.309 0.309 ↓ 0.0 0 103

Seq Scan on groups_contacts__cashiering gc (cost=0.00..13.00 rows=300 width=8) (actual time=0.003..0.003 rows=0 loops=103)

20. 1.339 2.369 ↓ 0.0 0 103

Bitmap Heap Scan on groups_contacts__coo gc (cost=4.27..9.60 rows=2 width=8) (actual time=0.023..0.023 rows=0 loops=103)

  • Recheck Cond: (address_to_section_id = a2s.id)
21. 1.030 1.030 ↓ 0.0 0 103

Bitmap Index Scan on idx_groups_contacts__coo_address_to_section_id (cost=0.00..4.27 rows=2 width=0) (actual time=0.010..0.010 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
22. 1.339 2.369 ↓ 0.0 0 103

Bitmap Heap Scan on groups_contacts__entitlements gc (cost=4.27..9.60 rows=2 width=8) (actual time=0.023..0.023 rows=0 loops=103)

  • Recheck Cond: (address_to_section_id = a2s.id)
23. 1.030 1.030 ↓ 0.0 0 103

Bitmap Index Scan on idx_groups_contacts__entitlements_address_to_section_id (cost=0.00..4.27 rows=2 width=0) (actual time=0.010..0.010 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
24. 64.581 64.581 ↓ 10.5 158 103

Index Scan using idx_groups_contacts__inspections_address_to_section_id on groups_contacts__inspections gc (cost=0.00..55.38 rows=15 width=8) (actual time=0.018..0.627 rows=158 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
25. 1.339 1.339 ↓ 0.0 0 103

Index Scan using idx_groups_contacts__license_address_to_section_id on groups_contacts__license gc (cost=0.00..8.27 rows=1 width=8) (actual time=0.013..0.013 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
26. 47.895 47.895 ↓ 11.3 79 103

Index Scan using idx_groups_contacts__permits_address_to_section_id on groups_contacts__permits gc (cost=0.00..29.56 rows=7 width=8) (actual time=0.021..0.465 rows=79 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
27. 1.442 2.781 ↓ 0.0 0 103

Bitmap Heap Scan on groups_contacts__planning gc (cost=4.27..9.60 rows=2 width=8) (actual time=0.027..0.027 rows=0 loops=103)

  • Recheck Cond: (address_to_section_id = a2s.id)
28. 1.339 1.339 ↓ 0.0 0 103

Bitmap Index Scan on idx_groups_contacts__planning_address_to_section_id (cost=0.00..4.27 rows=2 width=0) (actual time=0.013..0.013 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
29. 1.545 1.545 ↓ 0.0 0 103

Index Scan using idx_groups_contacts__properties_address_to_section_id on groups_contacts__properties gc (cost=0.00..8.37 rows=1 width=8) (actual time=0.015..0.015 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
30. 1.339 2.369 ↓ 0.0 0 103

Bitmap Heap Scan on groups_contacts__rcertifications gc (cost=4.27..9.60 rows=2 width=8) (actual time=0.023..0.023 rows=0 loops=103)

  • Recheck Cond: (address_to_section_id = a2s.id)
31. 1.030 1.030 ↓ 0.0 0 103

Bitmap Index Scan on idx_groups_contacts__rcertifications_address_to_section_id (cost=0.00..4.27 rows=2 width=0) (actual time=0.010..0.010 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
32. 0.309 0.309 ↓ 0.0 0 103

Seq Scan on groups_contacts__requests gc (cost=0.00..13.00 rows=300 width=8) (actual time=0.003..0.003 rows=0 loops=103)

33. 1.339 1.339 ↓ 0.0 0 103

Index Scan using idx_groups_contacts__violations_address_to_section_id on groups_contacts__violations gc (cost=0.00..8.27 rows=1 width=8) (actual time=0.013..0.013 rows=0 loops=103)

  • Index Cond: (address_to_section_id = a2s.id)
34. 219.582 219.582 ↑ 1.0 1 24,398

Index Scan using groups_pkey on groups g (cost=0.00..0.27 rows=1 width=15) (actual time=0.006..0.009 rows=1 loops=24,398)

  • Index Cond: (group_id = gc.class_id)