explain.depesz.com

PostgreSQL's explain analyze made readable

Result: BWRp

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

Nested Loop (cost=4.33..17.38 rows=853,600 width=1,430) (actual rows= loops=)

  • Output: s.id, s.account_id, s.can_submit_feedback, s.change_chapter_state, s.checkpoint_failed_responses_count, s.course_id, s.custom_goal, s.goal_execution_plan, s.is_pretest_done, s.knewton_registration_id, s.module_execution_plan, s.pending_textbook_path, s.previously_recommended_module_ids, s.recent_module_ids, w.id, w.continuous_worktime_by_chapter, w.milliseconds_since_last_interaction, w.student_registration_id, w.updated, w.worktime_in_milliseconds_by_iso_date, a.id, s0.id, s0.correct_results, s0.correct_streak, s0.given_up_count, s0.student_registration_id, s0.textbook_path, s0.wrong_results, a0.id, a0.streak_achievements, a0.student_registration_id, a0.textbook_path, a0.work_time_achievements
  • Join Filter: (s.id = w.student_registration_id)
2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..2.05 rows=1 width=1,045) (actual rows= loops=)

  • Output: s.id, s.account_id, s.can_submit_feedback, s.change_chapter_state, s.checkpoint_failed_responses_count, s.course_id, s.custom_goal, s.goal_execution_plan, s.is_pretest_done, s.knewton_registration_id, s.module_execution_plan, s.pending_textbook_path, s.previously_recommended_module_ids, s.recent_module_ids, a.id
  • Inner Unique: true
  • Join Filter: (s.account_id = a.id)
3. 0.000 0.000 ↓ 0.0

Seq Scan on public.student_registrations s (cost=0.00..1.01 rows=1 width=1,037) (actual rows= loops=)

  • Output: s.id, s.knewton_registration_id, s.course_id, s.account_id, s.pending_textbook_path, s.change_chapter_state, s.is_pretest_done, s.module_execution_plan, s.recent_module_ids, s.previously_recommended_module_ids, s.can_submit_feedback, s.checkpoint_failed_responses_count, s.custom_goal, s.goal_execution_plan
  • Filter: (s.course_id = 1)
4. 0.000 0.000 ↓ 0.0

Seq Scan on public.accounts a (cost=0.00..1.02 rows=1 width=8) (actual rows= loops=)

  • Output: a.id
  • Filter: (a.user_id = 'Tibet-284244'::text)
5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.33..15.09 rows=19 width=385) (actual rows= loops=)

  • Output: w.id, w.continuous_worktime_by_chapter, w.milliseconds_since_last_interaction, w.student_registration_id, w.updated, w.worktime_in_milliseconds_by_iso_date, s0.id, s0.correct_results, s0.correct_streak, s0.given_up_count, s0.student_registration_id, s0.textbook_path, s0.wrong_results, a0.id, a0.streak_achievements, a0.student_registration_id, a0.textbook_path, a0.work_time_achievements
  • Join Filter: (w.student_registration_id = a0.student_registration_id)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.18..13.69 rows=4 width=329) (actual rows= loops=)

  • Output: w.id, w.continuous_worktime_by_chapter, w.milliseconds_since_last_interaction, w.student_registration_id, w.updated, w.worktime_in_milliseconds_by_iso_date, s0.id, s0.correct_results, s0.correct_streak, s0.given_up_count, s0.student_registration_id, s0.textbook_path, s0.wrong_results
7. 0.000 0.000 ↓ 0.0

Seq Scan on public.worktime w (cost=0.00..1.01 rows=1 width=265) (actual rows= loops=)

  • Output: w.id, w.worktime_in_milliseconds_by_iso_date, w.updated, w.continuous_worktime_by_chapter, w.milliseconds_since_last_interaction, w.student_registration_id
8. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on public.scores s0 (cost=4.18..12.64 rows=4 width=64) (actual rows= loops=)

  • Output: s0.id, s0.textbook_path, s0.correct_streak, s0.correct_results, s0.wrong_results, s0.given_up_count, s0.student_registration_id
  • Recheck Cond: (s0.student_registration_id = w.student_registration_id)
9. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ix_scores_student_registration_id (cost=0.00..4.18 rows=4 width=0) (actual rows= loops=)

  • Index Cond: (s0.student_registration_id = w.student_registration_id)
10. 0.000 0.000 ↓ 0.0

Index Scan using ix_achievements_student_registration_id on public.achievements a0 (cost=0.15..0.29 rows=5 width=56) (actual rows= loops=)

  • Output: a0.id, a0.textbook_path, a0.streak_achievements, a0.work_time_achievements, a0.student_registration_id
  • Index Cond: (a0.student_registration_id = s0.student_registration_id)