explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Jtfb

Settings
# exclusive inclusive rows x rows loops node
1. 0.020 3.635 ↓ 23.8 143 1

Append (cost=33.23..242.01 rows=6 width=438) (actual time=2.239..3.635 rows=143 loops=1)

2. 0.000 0.009 ↓ 0.0 0 1

Subquery Scan on *SELECT* 1 (cost=33.23..33.27 rows=1 width=430) (actual time=0.009..0.009 rows=0 loops=1)

3. 0.001 0.009 ↓ 0.0 0 1

GroupAggregate (cost=33.23..33.26 rows=1 width=534) (actual time=0.009..0.009 rows=0 loops=1)

  • Group Key: gc.id, g.id, "user".id
4. 0.002 0.008 ↓ 0.0 0 1

Sort (cost=33.23..33.24 rows=1 width=489) (actual time=0.008..0.008 rows=0 loops=1)

  • Sort Key: gc.id, "user".id
  • Sort Method: quicksort Memory: 25kB
5. 0.001 0.006 ↓ 0.0 0 1

Nested Loop Left Join (cost=1.12..33.22 rows=1 width=489) (actual time=0.006..0.006 rows=0 loops=1)

  • Join Filter: (gs.goal_id = g.id)
6. 0.000 0.005 ↓ 0.0 0 1

Nested Loop (cost=0.85..24.91 rows=1 width=473) (actual time=0.005..0.005 rows=0 loops=1)

7. 0.000 0.005 ↓ 0.0 0 1

Nested Loop (cost=0.56..16.60 rows=1 width=441) (actual time=0.005..0.005 rows=0 loops=1)

8. 0.005 0.005 ↓ 0.0 0 1

Index Scan using goal_comment_goal_id_fk on goal_comment gc (cost=0.28..8.29 rows=1 width=353) (actual time=0.005..0.005 rows=0 loops=1)

  • Index Cond: (goal_id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
9. 0.000 0.000 ↓ 0.0 0

Index Scan using user_pkey on "user" (cost=0.29..8.30 rows=1 width=88) (never executed)

  • Index Cond: (id = gc.user_id)
  • Filter: (status = ANY ('{invited,active}'::user_status[]))
10. 0.000 0.000 ↓ 0.0 0

Index Scan using goal_pkey on goal g (cost=0.29..8.30 rows=1 width=32) (never executed)

  • Index Cond: (id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
11. 0.000 0.000 ↓ 0.0 0

Index Only Scan using goal_share_pkey on goal_share gs (cost=0.28..8.30 rows=1 width=32) (never executed)

  • Index Cond: (goal_id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
  • Heap Fetches: 0
12. 0.000 0.383 ↓ 0.0 0 1

Subquery Scan on *SELECT* 2 (cost=137.79..137.86 rows=2 width=381) (actual time=0.383..0.383 rows=0 loops=1)

13. 0.001 0.383 ↓ 0.0 0 1

GroupAggregate (cost=137.79..137.84 rows=2 width=397) (actual time=0.383..0.383 rows=0 loops=1)

  • Group Key: gn.id, g_1.user_id
14. 0.002 0.382 ↓ 0.0 0 1

Sort (cost=137.79..137.80 rows=2 width=312) (actual time=0.382..0.382 rows=0 loops=1)

  • Sort Key: gn.id, g_1.user_id
  • Sort Method: quicksort Memory: 25kB
15. 0.000 0.380 ↓ 0.0 0 1

Nested Loop (cost=0.57..137.78 rows=2 width=312) (actual time=0.380..0.380 rows=0 loops=1)

16. 0.002 0.013 ↑ 1.0 1 1

Nested Loop Left Join (cost=0.57..16.61 rows=1 width=48) (actual time=0.011..0.013 rows=1 loops=1)

  • Join Filter: (gs_1.goal_id = g_1.id)
17. 0.007 0.007 ↑ 1.0 1 1

Index Scan using goal_pkey on goal g_1 (cost=0.29..8.30 rows=1 width=32) (actual time=0.005..0.007 rows=1 loops=1)

  • Index Cond: (id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
18. 0.004 0.004 ↓ 0.0 0 1

Index Only Scan using goal_share_pkey on goal_share gs_1 (cost=0.28..8.30 rows=1 width=32) (actual time=0.004..0.004 rows=0 loops=1)

  • Index Cond: (goal_id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
  • Heap Fetches: 0
19. 0.367 0.367 ↓ 0.0 0 1

Seq Scan on goal_note gn (cost=0.00..121.15 rows=2 width=280) (actual time=0.366..0.367 rows=0 loops=1)

  • Filter: (goal_id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
  • Rows Removed by Filter: 2,360
20. 0.027 3.216 ↓ 71.5 143 1

Subquery Scan on *SELECT* 3 (cost=28.48..29.10 rows=2 width=632) (actual time=1.845..3.216 rows=143 loops=1)

21. 1.563 3.189 ↓ 71.5 143 1

GroupAggregate (cost=28.48..29.08 rows=2 width=776) (actual time=1.845..3.189 rows=143 loops=1)

  • Group Key: ahgg.goal_id, ahrv.id, user_1.id, ahg.question, ahg.created, ahg.user_id, ahg.public_goal, ahr.user_id, ahr.external_email
22. 0.125 1.626 ↓ 71.5 143 1

Sort (cost=28.48..28.49 rows=2 width=739) (actual time=1.600..1.626 rows=143 loops=1)

  • Sort Key: ahrv.id, user_1.id, ahg.question, ahg.created, ahg.user_id, ahg.public_goal, ahr.user_id, ahr.external_email
  • Sort Method: quicksort Memory: 107kB
23. 0.082 1.501 ↓ 71.5 143 1

Nested Loop Left Join (cost=1.99..28.47 rows=2 width=739) (actual time=0.054..1.501 rows=143 loops=1)

24. 0.056 1.133 ↓ 71.5 143 1

Nested Loop (cost=1.70..27.76 rows=2 width=723) (actual time=0.049..1.133 rows=143 loops=1)

25. 0.069 0.648 ↓ 71.5 143 1

Nested Loop Left Join (cost=1.42..26.69 rows=2 width=341) (actual time=0.043..0.648 rows=143 loops=1)

  • Filter: ((ahr.user_id IS NULL) = (user_1.id IS NULL))
  • Rows Removed by Filter: 19
26. 0.035 0.093 ↓ 54.0 162 1

Nested Loop (cost=1.13..25.45 rows=3 width=253) (actual time=0.027..0.093 rows=162 loops=1)

27. 0.002 0.020 ↑ 1.0 1 1

Nested Loop Left Join (cost=0.84..24.91 rows=1 width=230) (actual time=0.019..0.020 rows=1 loops=1)

  • Join Filter: (gs_2.goal_id = ahgg.goal_id)
28. 0.003 0.015 ↑ 1.0 1 1

Nested Loop (cost=0.56..16.60 rows=1 width=214) (actual time=0.015..0.015 rows=1 loops=1)

29. 0.008 0.008 ↑ 1.0 1 1

Index Scan using ad_hoc_request_goal_goal_id_fk on ad_hoc_request_goal ahgg (cost=0.28..8.29 rows=1 width=32) (actual time=0.007..0.008 rows=1 loops=1)

  • Index Cond: (goal_id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
30. 0.004 0.004 ↑ 1.0 1 1

Index Scan using ad_hoc_request_group_pkey on ad_hoc_request_group ahg (cost=0.29..8.30 rows=1 width=182) (actual time=0.004..0.004 rows=1 loops=1)

  • Index Cond: (id = ahgg.ad_hoc_request_group_id)
31. 0.003 0.003 ↓ 0.0 0 1

Index Only Scan using goal_share_pkey on goal_share gs_2 (cost=0.28..8.30 rows=1 width=32) (actual time=0.003..0.003 rows=0 loops=1)

  • Index Cond: (goal_id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
  • Heap Fetches: 0
32. 0.038 0.038 ↓ 54.0 162 1

Index Scan using ad_hoc_request_group_id_email_uk on ad_hoc_request ahr (cost=0.29..0.52 rows=3 width=71) (actual time=0.006..0.038 rows=162 loops=1)

  • Index Cond: (ad_hoc_request_group_id = ahg.id)
33. 0.486 0.486 ↑ 1.0 1 162

Index Scan using user_pkey on "user" user_1 (cost=0.29..0.40 rows=1 width=88) (actual time=0.003..0.003 rows=1 loops=162)

  • Index Cond: (id = ahr.user_id)
  • Filter: (status = ANY ('{invited,active}'::user_status[]))
  • Rows Removed by Filter: 0
34. 0.429 0.429 ↑ 1.0 1 143

Index Scan using ad_hoc_review_ad_hoc_request_id_key on ad_hoc_review ahrv (cost=0.29..0.54 rows=1 width=414) (actual time=0.003..0.003 rows=1 loops=143)

  • Index Cond: (ad_hoc_request_id = ahr.id)
35. 0.286 0.286 ↓ 0.0 0 143

Index Only Scan using ad_hoc_review_share_pkey on ad_hoc_review_share ahrs (cost=0.28..0.33 rows=2 width=32) (actual time=0.002..0.002 rows=0 loops=143)

  • Index Cond: (ad_hoc_review_id = ahrv.id)
  • Heap Fetches: 11
36. 0.000 0.007 ↓ 0.0 0 1

Nested Loop (cost=1.83..41.74 rows=1 width=170) (actual time=0.007..0.007 rows=0 loops=1)

37. 0.000 0.007 ↓ 0.0 0 1

Nested Loop Left Join (cost=1.54..18.42 rows=1 width=246) (actual time=0.007..0.007 rows=0 loops=1)

  • Filter: ((qr.user_id IS NULL) = (user_2.id IS NULL))
38. 0.001 0.007 ↓ 0.0 0 1

Nested Loop (cost=1.26..17.68 rows=2 width=158) (actual time=0.007..0.007 rows=0 loops=1)

39. 0.000 0.006 ↓ 0.0 0 1

Nested Loop (cost=0.84..17.02 rows=1 width=134) (actual time=0.006..0.006 rows=0 loops=1)

40. 0.000 0.006 ↓ 0.0 0 1

Nested Loop (cost=0.56..16.60 rows=1 width=123) (actual time=0.006..0.006 rows=0 loops=1)

41. 0.006 0.006 ↓ 0.0 0 1

Index Scan using questionnaire_request_goal_goal_id_fk on questionnaire_request_goal qgg (cost=0.28..8.29 rows=1 width=32) (actual time=0.006..0.006 rows=0 loops=1)

  • Index Cond: (goal_id = '3fc829a0-3dba-48f5-9a3b-1f1f5d4fd9f5'::uuid)
42. 0.000 0.000 ↓ 0.0 0

Index Scan using questionnaire_request_group_pkey on questionnaire_request_group qg (cost=0.29..8.30 rows=1 width=91) (never executed)

  • Index Cond: (id = qgg.questionnaire_request_group_id)
43. 0.000 0.000 ↓ 0.0 0

Index Scan using questionnaire_pkey on questionnaire q (cost=0.28..0.43 rows=1 width=43) (never executed)

  • Index Cond: (id = qg.questionnaire_id)
44. 0.000 0.000 ↓ 0.0 0

Index Scan using questionnaire_request_group_id_email_uk on questionnaire_request qr (cost=0.41..0.63 rows=3 width=72) (never executed)

  • Index Cond: (questionnaire_request_group_id = qg.id)
45. 0.000 0.000 ↓ 0.0 0

Index Scan using user_pkey on "user" user_2 (cost=0.29..0.36 rows=1 width=88) (never executed)

  • Index Cond: (id = qr.user_id)
  • Filter: (status = ANY ('{invited,active}'::user_status[]))
46. 0.000 0.000 ↓ 0.0 0

Index Scan using questionnaire_review_questionnaire_request_id_key on questionnaire_review qrv (cost=0.29..0.69 rows=1 width=32) (never executed)

  • Index Cond: (questionnaire_request_id = qr.id)
47.          

SubPlan (for Nested Loop)

48. 0.000 0.000 ↓ 0.0 0

HashSetOp Intersect (cost=4.30..22.62 rows=2 width=20) (never executed)

49. 0.000 0.000 ↓ 0.0 0

Append (cost=4.30..22.61 rows=4 width=20) (never executed)

50. 0.000 0.000 ↓ 0.0 0

Subquery Scan on *SELECT* 1_1 (cost=4.30..11.63 rows=2 width=20) (never executed)

51. 0.000 0.000 ↓ 0.0 0

Bitmap Heap Scan on questionnaire_review_share qrs (cost=4.30..11.61 rows=2 width=16) (never executed)

  • Recheck Cond: (questionnaire_review_id = qrv.id)
52. 0.000 0.000 ↓ 0.0 0

Bitmap Index Scan on questionnaire_review_share_pkey (cost=0.00..4.30 rows=2 width=0) (never executed)

  • Index Cond: (questionnaire_review_id = qrv.id)
53. 0.000 0.000 ↓ 0.0 0

Subquery Scan on *SELECT* 2_1 (cost=4.30..10.96 rows=2 width=20) (never executed)

54. 0.000 0.000 ↓ 0.0 0

Bitmap Heap Scan on goal_share gs_3 (cost=4.30..10.94 rows=2 width=16) (never executed)

  • Recheck Cond: (goal_id = qgg.goal_id)
55. 0.000 0.000 ↓ 0.0 0

Bitmap Index Scan on goal_share_pkey (cost=0.00..4.29 rows=2 width=0) (never executed)

  • Index Cond: (goal_id = qgg.goal_id)
Planning time : 5.784 ms
Execution time : 3.820 ms