explain.depesz.com

PostgreSQL's explain analyze made readable

Result: nYI3

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

Nested Loop (cost=135.05..206.41 rows=1 width=1,093) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=134.77..206.11 rows=1 width=1,101) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=115.73..183.04 rows=1 width=1,163) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=115.44..170.57 rows=1 width=1,163) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=115.15..162.26 rows=1 width=1,159) (actual rows= loops=)

  • Join Filter: (constant_settings.company_id = companies.id)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=115.15..160.04 rows=1 width=1,097) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on newsfeed_events (cost=115.15..157.90 rows=1 width=1,093) (actual rows= loops=)

  • Recheck Cond: ((audience IS NULL) AND (owner_id = 44))
  • Filter: ((NOT is_destroyed) AND ((newsfeedable_type)::text = 'Workversary'::text))
8. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=115.15..115.15 rows=11 width=0) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on index_newsfeed_events_on_audience (cost=0.00..49.45 rows=2,270 width=0) (actual rows= loops=)

  • Index Cond: (audience IS NULL)
10. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on index_newsfeed_events_on_owner_id_and_owner_type (cost=0.00..65.45 rows=2,270 width=0) (actual rows= loops=)

  • Index Cond: (owner_id = 44)
11. 0.000 0.000 ↓ 0.0

Seq Scan on constant_settings (cost=0.00..2.12 rows=1 width=8) (actual rows= loops=)

  • Filter: (id = 44)
12. 0.000 0.000 ↓ 0.0

Seq Scan on companies (cost=0.00..2.10 rows=10 width=70) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Index Only Scan using workversaries_pkey on workversaries (cost=0.29..8.31 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = newsfeed_events.newsfeedable_id)
14. 0.000 0.000 ↓ 0.0

Index Scan using index_workversary_recipients_on_workversary_id on workversary_recipients (cost=0.29..8.06 rows=441 width=8) (actual rows= loops=)

  • Index Cond: (workversary_id = workversaries.id)
15. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on employees (cost=19.04..23.06 rows=1 width=70) (actual rows= loops=)

  • Recheck Cond: (((version)::text = (companies.static_version)::text) AND ((job_location)::text = 'San Francisco'::text) AND (user_id = workversary_recipients.user_id))
16. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=19.04..19.04 rows=1 width=0) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on index_employees_on_version_and_job_location (cost=0.00..4.51 rows=9 width=0) (actual rows= loops=)

  • Index Cond: (((version)::text = (companies.static_version)::text) AND ((job_location)::text = 'San Francisco'::text))
18. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on index_employees_on_user_id_and_version (cost=0.00..14.27 rows=1,833 width=0) (actual rows= loops=)

  • Index Cond: (user_id = workversary_recipients.user_id)
19. 0.000 0.000 ↓ 0.0

Index Only Scan using users_pkey on users (cost=0.28..0.30 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = workversary_recipients.user_id)