explain.depesz.com

PostgreSQL's explain analyze made readable

Result: KEV9

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

Nested Loop Left Join (cost=108.83..278.91 rows=18 width=165) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=6.05..12.10 rows=1 width=145) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on lesson l (cost=5.78..7.80 rows=1 width=79) (actual rows= loops=)

  • Recheck Cond: ((start_time >= '2018-12-17 00:00:00+00'::timestamp with time zone) AND (start_time <= '2018-12-23 23:59:59+00'::timestamp with time zone) AND (end_time >= '2018-12-17 00:00:00+00'::timestamp with time zone) AND (end_time <= '2018-12-23 23:59:59+00'::timestamp with time zone))
4. 0.000 0.000 ↓ 0.0

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

5. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on lesson_start_time_idx (cost=0.00..2.74 rows=46 width=0) (actual rows= loops=)

  • Index Cond: ((start_time >= '2018-12-17 00:00:00+00'::timestamp with time zone) AND (start_time <= '2018-12-23 23:59:59+00'::timestamp with time zone))
6. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on lesson_end_time_idx (cost=0.00..2.78 rows=50 width=0) (actual rows= loops=)

  • Index Cond: ((end_time >= '2018-12-17 00:00:00+00'::timestamp with time zone) AND (end_time <= '2018-12-23 23:59:59+00'::timestamp with time zone))
7. 0.000 0.000 ↓ 0.0

Index Scan using curriculum_pkey on curriculum c (cost=0.28..4.29 rows=1 width=82) (actual rows= loops=)

  • Index Cond: (id = l.curriculum_id)
8. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=102.78..266.63 rows=18 width=45) (actual rows= loops=)

  • Hash Cond: ((af.class_id)::text = (cl.class_id)::text)
9. 0.000 0.000 ↓ 0.0

Seq Scan on after_class_exercise_statistics af (cost=0.00..149.31 rows=3,831 width=25) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash (cost=102.68..102.68 rows=8 width=70) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.69..102.68 rows=8 width=70) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Index Scan using class_curriculum_id_idx on class cl (cost=0.28..0.42 rows=2 width=70) (actual rows= loops=)

  • Index Cond: ((curriculum_id)::text = (c.curriculum_id)::text)
13. 0.000 0.000 ↓ 0.0

Index Only Scan using cas_curriculum_id_lesson_id_class_id_unq on curriculum_attend_statistics cas (cost=0.41..51.08 rows=5 width=25) (actual rows= loops=)

  • Index Cond: (class_id = (cl.class_id)::text)