explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Z1az

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

Aggregate (cost=218,008.69..218,008.70 rows=1 width=56) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=987.32..217,683.84 rows=18,563 width=28) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=986.88..173,944.77 rows=18,563 width=48) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=986.31..143,478.25 rows=18,563 width=44) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=985.74..110,296.88 rows=18,563 width=40) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=985.16..76,489.02 rows=18,563 width=36) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=984.59..39,966.32 rows=18,563 width=32) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

HashAggregate (cost=984.02..1,169.65 rows=18,563 width=28) (actual rows= loops=)

  • Group Key: o.person_id
9. 0.000 0.000 ↓ 0.0

Append (cost=0.00..891.20 rows=18,563 width=24) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Seq Scan on event_page_ace8b421_634f_4060_9118_ffc36db704dc o (cost=0.00..0.00 rows=1 width=24) (actual rows= loops=)

  • Filter: ((timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND ((location_fragment)::text = '/welcome'::text) AND ((page_title)::text = 'H&R Block 2018'::text))
11. 0.000 0.000 ↓ 0.0

Index Only Scan using ep_ace8b421_634f_4060_9118_ffc36db704dc_2019_1_locfragtit_ts_pi on event_page_ace8b421_634f_4060_9118_ffc36db704dc_2019_1 o_1 (cost=0.55..891.20 rows=18,562 width=24) (actual rows= loops=)

  • Index Cond: ((location_fragment = '/welcome'::text) AND (page_title = 'H&R Block 2018'::text) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone))
12. 0.000 0.000 ↓ 0.0

Limit (cost=0.57..2.06 rows=1 width=28) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Result (cost=0.57..3.55 rows=2 width=28) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Merge Append (cost=0.57..3.53 rows=2 width=24) (actual rows= loops=)

  • Sort Key: o_2.timestamp_
15. 0.000 0.000 ↓ 0.0

Sort (cost=0.01..0.02 rows=1 width=24) (actual rows= loops=)

  • Sort Key: o_2.timestamp_
16. 0.000 0.000 ↓ 0.0

Seq Scan on event_page_ace8b421_634f_4060_9118_ffc36db704dc o_2 (cost=0.00..0.00 rows=1 width=24) (actual rows= loops=)

  • Filter: ((timestamp_ >= (min(o.timestamp_))) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o.person_id) AND ((location_fragment)::text = '/home/section'::text) AND ((page_title)::text = 'H&R Block 2018'::text))
17. 0.000 0.000 ↓ 0.0

Index Only Scan using ep_ace8b421_634f_4060_9118_ffc36db704dc_2019_1_locfragtit_ts_pi on event_page_ace8b421_634f_4060_9118_ffc36db704dc_2019_1 o_3 (cost=0.55..3.49 rows=1 width=24) (actual rows= loops=)

  • Index Cond: ((location_fragment = '/home/section'::text) AND (page_title = 'H&R Block 2018'::text) AND (timestamp_ >= (min(o.timestamp_))) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o.person_id))
18. 0.000 0.000 ↓ 0.0

Limit (cost=0.57..1.95 rows=1 width=28) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Result (cost=0.57..3.32 rows=2 width=28) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Merge Append (cost=0.57..3.30 rows=2 width=24) (actual rows= loops=)

  • Sort Key: o_4.timestamp_
21. 0.000 0.000 ↓ 0.0

Sort (cost=0.01..0.02 rows=1 width=24) (actual rows= loops=)

  • Sort Key: o_4.timestamp_
22. 0.000 0.000 ↓ 0.0

Seq Scan on event_page_ace8b421_634f_4060_9118_ffc36db704dc o_4 (cost=0.00..0.00 rows=1 width=24) (actual rows= loops=)

  • Filter: ((timestamp_ >= o_2.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_2.person_id) AND ((location_fragment)::text = '/quick-entry/section'::text) AND ((page_title)::text = 'H&R Block 2018'::text))
23. 0.000 0.000 ↓ 0.0

Index Only Scan using ep_ace8b421_634f_4060_9118_ffc36db704dc_2019_1_locfragtit_ts_pi on event_page_ace8b421_634f_4060_9118_ffc36db704dc_2019_1 o_5 (cost=0.55..3.26 rows=1 width=24) (actual rows= loops=)

  • Index Cond: ((location_fragment = '/quick-entry/section'::text) AND (page_title = 'H&R Block 2018'::text) AND (timestamp_ >= o_2.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_2.person_id))
24. 0.000 0.000 ↓ 0.0

Limit (cost=0.57..1.80 rows=1 width=28) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Result (cost=0.57..3.03 rows=2 width=28) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Merge Append (cost=0.57..3.01 rows=2 width=24) (actual rows= loops=)

  • Sort Key: o_6.timestamp_
27. 0.000 0.000 ↓ 0.0

Sort (cost=0.01..0.02 rows=1 width=24) (actual rows= loops=)

  • Sort Key: o_6.timestamp_
28. 0.000 0.000 ↓ 0.0

Seq Scan on event_page_ace8b421_634f_4060_9118_ffc36db704dc o_6 (cost=0.00..0.00 rows=1 width=24) (actual rows= loops=)

  • Filter: ((timestamp_ >= o_4.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_4.person_id) AND ((location_fragment)::text = '/prepare/your-year/introduction'::text) AND ((page_title)::text = 'H&R Block 2018'::text))
29. 0.000 0.000 ↓ 0.0

Index Only Scan using ep_ace8b421_634f_4060_9118_ffc36db704dc_2019_1_locfragtit_ts_pi on event_page_ace8b421_634f_4060_9118_ffc36db704dc_2019_1 o_7 (cost=0.55..2.97 rows=1 width=24) (actual rows= loops=)

  • Index Cond: ((location_fragment = '/prepare/your-year/introduction'::text) AND (page_title = 'H&R Block 2018'::text) AND (timestamp_ >= o_4.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_4.person_id))
30. 0.000 0.000 ↓ 0.0

Limit (cost=0.57..1.77 rows=1 width=28) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Result (cost=0.57..2.96 rows=2 width=28) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Merge Append (cost=0.57..2.94 rows=2 width=24) (actual rows= loops=)

  • Sort Key: o_8.timestamp_
33. 0.000 0.000 ↓ 0.0

Sort (cost=0.01..0.02 rows=1 width=24) (actual rows= loops=)

  • Sort Key: o_8.timestamp_
34. 0.000 0.000 ↓ 0.0

Seq Scan on event_page_ace8b421_634f_4060_9118_ffc36db704dc o_8 (cost=0.00..0.00 rows=1 width=24) (actual rows= loops=)

  • Filter: ((timestamp_ >= o_6.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_6.person_id) AND ((location_fragment)::text = '/wrap-up/section'::text) AND ((page_title)::text = 'H&R Block 2018'::text))
35. 0.000 0.000 ↓ 0.0

Index Only Scan using ep_ace8b421_634f_4060_9118_ffc36db704dc_2019_1_locfragtit_ts_pi on event_page_ace8b421_634f_4060_9118_ffc36db704dc_2019_1 o_9 (cost=0.55..2.90 rows=1 width=24) (actual rows= loops=)

  • Index Cond: ((location_fragment = '/wrap-up/section'::text) AND (page_title = 'H&R Block 2018'::text) AND (timestamp_ >= o_6.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_6.person_id))
36. 0.000 0.000 ↓ 0.0

Limit (cost=0.57..1.62 rows=1 width=28) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Result (cost=0.57..2.67 rows=2 width=28) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

Merge Append (cost=0.57..2.65 rows=2 width=24) (actual rows= loops=)

  • Sort Key: o_10.timestamp_
39. 0.000 0.000 ↓ 0.0

Sort (cost=0.01..0.02 rows=1 width=24) (actual rows= loops=)

  • Sort Key: o_10.timestamp_
40. 0.000 0.000 ↓ 0.0

Seq Scan on event_page_ace8b421_634f_4060_9118_ffc36db704dc o_10 (cost=0.00..0.00 rows=1 width=24) (actual rows= loops=)

  • Filter: ((timestamp_ >= o_8.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_8.person_id) AND ((location_fragment)::text = '/file/file-return'::text) AND ((page_title)::text = 'H&R Block 2018'::text))
41. 0.000 0.000 ↓ 0.0

Index Only Scan using ep_ace8b421_634f_4060_9118_ffc36db704dc_2019_1_locfragtit_ts_pi on event_page_ace8b421_634f_4060_9118_ffc36db704dc_2019_1 o_11 (cost=0.55..2.61 rows=1 width=24) (actual rows= loops=)

  • Index Cond: ((location_fragment = '/file/file-return'::text) AND (page_title = 'H&R Block 2018'::text) AND (timestamp_ >= o_8.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_8.person_id))
42. 0.000 0.000 ↓ 0.0

Limit (cost=0.44..2.34 rows=1 width=28) (actual rows= loops=)

43. 0.000 0.000 ↓ 0.0

Result (cost=0.44..4.23 rows=2 width=28) (actual rows= loops=)

44. 0.000 0.000 ↓ 0.0

Merge Append (cost=0.44..4.21 rows=2 width=8) (actual rows= loops=)

  • Sort Key: o_12.timestamp_
45. 0.000 0.000 ↓ 0.0

Sort (cost=0.01..0.02 rows=1 width=8) (actual rows= loops=)

  • Sort Key: o_12.timestamp_
46. 0.000 0.000 ↓ 0.0

Seq Scan on event_track_ace8b421_634f_4060_9118_ffc36db704dc o_12 (cost=0.00..0.00 rows=1 width=8) (actual rows= loops=)

  • Filter: ((timestamp_ >= o_10.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_10.person_id) AND ((event_name)::text = 'Filed Return'::text) AND ((page_title)::text = 'H&R Block 2018'::text))
47. 0.000 0.000 ↓ 0.0

Index Scan using et_ace8b421_634f_4060_9118_ffc36db704dc_2019_1_name_ts_pid_ses on event_track_ace8b421_634f_4060_9118_ffc36db704dc_2019_1 o_13 (cost=0.42..4.17 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (((event_name)::text = 'Filed Return'::text) AND (timestamp_ >= o_10.timestamp_) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (timestamp_ >= '2019-01-01 00:00:00'::timestamp without time zone) AND (timestamp_ <= '2019-01-31 23:59:59.999'::timestamp without time zone) AND (person_id = o_10.person_id))
  • Filter: ((page_title)::text = 'H&R Block 2018'::text)