explain.depesz.com

PostgreSQL's explain analyze made readable

Result: T8Bo

Settings
# exclusive inclusive rows x rows loops node
1. 12.512 533,791.504 ↓ 1.0 1,844 1

Seq Scan on symbols s (cost=0.00..2,765,536.15 rows=1,838 width=20) (actual time=3.049..533,791.504 rows=1,844 loops=1)

2.          

SubPlan (forSeq Scan)

3. 55.320 274,219.396 ↑ 1.0 1 1,844

Limit (cost=726.68..752.31 rows=1 width=16) (actual time=148.704..148.709 rows=1 loops=1,844)

4. 0.000 274,164.076 ↑ 23,295.0 1 1,844

Custom Scan (ConstraintAwareAppend) (cost=726.68..597,899.92 rows=23,295 width=16) (actual time=148.679..148.679 rows=1 loops=1,844)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
5. 9.220 274,164.076 ↑ 23,295.0 1 1,844

Merge Append (cost=726.68..597,899.92 rows=23,295 width=16) (actual time=148.679..148.679 rows=1 loops=1,844)

  • Sort Key: t_1."time
6. 3,597.644 3,597.644 ↑ 138.0 1 1,844

Index Scan using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_1 (cost=0.43..4,160.88 rows=138 width=16) (actual time=1.951..1.951 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
7. 21,486.288 21,486.288 ↑ 1,331.0 1 1,844

Index Scan using _hyper_1_2035_chunk_symbol_time on _hyper_1_2035_chunk t_2 (cost=0.43..38,199.58 rows=1,331 width=16) (actual time=11.652..11.652 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
8. 10,973.644 10,973.644 ↑ 650.0 1 1,844

Index Scan using _hyper_1_2036_chunk_symbol_time on _hyper_1_2036_chunk t_3 (cost=0.43..18,032.26 rows=650 width=16) (actual time=5.951..5.951 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
9. 9,168.368 9,168.368 ↑ 430.0 1 1,844

Index Scan using _hyper_1_2037_chunk_symbol_time on _hyper_1_2037_chunk t_4 (cost=0.43..10,299.40 rows=430 width=16) (actual time=4.972..4.972 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
10. 32,214.680 32,214.680 ↑ 1,665.0 1 1,844

Index Scan using _hyper_1_2038_chunk_symbol_time on _hyper_1_2038_chunk t_5 (cost=0.43..43,210.54 rows=1,665 width=16) (actual time=17.470..17.470 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
11. 24,969.604 24,969.604 ↑ 1,625.0 1 1,844

Index Scan using _hyper_1_2039_chunk_symbol_time on _hyper_1_2039_chunk t_6 (cost=0.43..44,306.65 rows=1,625 width=16) (actual time=13.541..13.541 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
12. 21,167.276 21,167.276 ↑ 1,566.0 1 1,844

Index Scan using _hyper_1_2040_chunk_symbol_time on _hyper_1_2040_chunk t_7 (cost=0.43..44,123.96 rows=1,566 width=16) (actual time=11.479..11.479 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
13. 20,403.860 20,403.860 ↑ 1,554.0 1 1,844

Index Scan using _hyper_1_2041_chunk_symbol_time on _hyper_1_2041_chunk t_8 (cost=0.43..43,586.18 rows=1,554 width=16) (actual time=11.065..11.065 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
14. 20,660.176 20,660.176 ↑ 1,535.0 1 1,844

Index Scan using _hyper_1_2042_chunk_symbol_time on _hyper_1_2042_chunk t_9 (cost=0.43..43,485.84 rows=1,535 width=16) (actual time=11.204..11.204 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
15. 19,503.988 19,503.988 ↑ 1,556.0 1 1,844

Index Scan using _hyper_1_2043_chunk_symbol_time on _hyper_1_2043_chunk t_10 (cost=0.43..43,336.78 rows=1,556 width=16) (actual time=10.577..10.577 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
16. 19,452.356 19,452.356 ↑ 1,565.0 1 1,844

Index Scan using _hyper_1_2044_chunk_symbol_time on _hyper_1_2044_chunk t_11 (cost=0.43..43,534.67 rows=1,565 width=16) (actual time=10.549..10.549 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
17. 19,457.888 19,457.888 ↑ 1,559.0 1 1,844

Index Scan using _hyper_1_2045_chunk_symbol_time on _hyper_1_2045_chunk t_12 (cost=0.43..43,639.27 rows=1,559 width=16) (actual time=10.552..10.552 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
18. 19,603.564 19,603.564 ↑ 1,514.0 1 1,844

Index Scan using _hyper_1_2046_chunk_symbol_time on _hyper_1_2046_chunk t_13 (cost=0.43..42,979.76 rows=1,514 width=16) (actual time=10.631..10.631 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
19. 17,466.368 17,466.368 ↑ 1,518.0 1 1,844

Index Scan using _hyper_1_2047_chunk_symbol_time on _hyper_1_2047_chunk t_14 (cost=0.43..43,015.28 rows=1,518 width=16) (actual time=9.472..9.472 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
20. 5,939.524 5,939.524 ↑ 611.0 1 1,844

Index Scan using _hyper_1_2048_chunk_symbol_time on _hyper_1_2048_chunk t_15 (cost=0.43..16,987.24 rows=611 width=16) (actual time=3.221..3.221 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
21. 5,596.540 5,596.540 ↑ 1,180.0 1 1,844

Index Scan using _hyper_1_2049_chunk_symbol_time on _hyper_1_2049_chunk t_16 (cost=0.43..33,121.88 rows=1,180 width=16) (actual time=3.035..3.035 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
22. 2,493.088 2,493.088 ↑ 1,264.0 1 1,844

Index Scan using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_17 (cost=0.43..35,413.23 rows=1,264 width=16) (actual time=1.352..1.352 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
23. 59.008 259,559.596 ↑ 1.0 1 1,844

Limit (cost=726.68..752.31 rows=1 width=16) (actual time=140.754..140.759 rows=1 loops=1,844)

24. 1.844 259,500.588 ↑ 23,295.0 1 1,844

Custom Scan (ConstraintAwareAppend) (cost=726.68..597,899.92 rows=23,295 width=16) (actual time=140.727..140.727 rows=1 loops=1,844)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
25. 11.064 259,498.744 ↑ 23,295.0 1 1,844

Merge Append (cost=726.68..597,899.92 rows=23,295 width=16) (actual time=140.726..140.726 rows=1 loops=1,844)

  • Sort Key: t_19."time" DESC
26. 3,651.120 3,651.120 ↑ 138.0 1 1,844

Index Scan Backward using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_19 (cost=0.43..4,160.88 rows=138 width=16) (actual time=1.980..1.980 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
27. 21,663.312 21,663.312 ↑ 1,331.0 1 1,844

Index Scan Backward using _hyper_1_2035_chunk_symbol_time on _hyper_1_2035_chunk t_20 (cost=0.43..38,199.58 rows=1,331 width=16) (actual time=11.748..11.748 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
28. 10,912.792 10,912.792 ↑ 650.0 1 1,844

Index Scan Backward using _hyper_1_2036_chunk_symbol_time on _hyper_1_2036_chunk t_21 (cost=0.43..18,032.26 rows=650 width=16) (actual time=5.918..5.918 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
29. 8,864.108 8,864.108 ↑ 430.0 1 1,844

Index Scan Backward using _hyper_1_2037_chunk_symbol_time on _hyper_1_2037_chunk t_22 (cost=0.43..10,299.40 rows=430 width=16) (actual time=4.807..4.807 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
30. 28,106.248 28,106.248 ↑ 1,665.0 1 1,844

Index Scan Backward using _hyper_1_2038_chunk_symbol_time on _hyper_1_2038_chunk t_23 (cost=0.43..43,210.54 rows=1,665 width=16) (actual time=15.242..15.242 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
31. 22,849.004 22,849.004 ↑ 1,625.0 1 1,844

Index Scan Backward using _hyper_1_2039_chunk_symbol_time on _hyper_1_2039_chunk t_24 (cost=0.43..44,306.65 rows=1,625 width=16) (actual time=12.391..12.391 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
32. 20,780.036 20,780.036 ↑ 1,566.0 1 1,844

Index Scan Backward using _hyper_1_2040_chunk_symbol_time on _hyper_1_2040_chunk t_25 (cost=0.43..44,123.96 rows=1,566 width=16) (actual time=11.269..11.269 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
33. 20,289.532 20,289.532 ↑ 1,554.0 1 1,844

Index Scan Backward using _hyper_1_2041_chunk_symbol_time on _hyper_1_2041_chunk t_26 (cost=0.43..43,586.18 rows=1,554 width=16) (actual time=11.003..11.003 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
34. 19,380.440 19,380.440 ↑ 1,535.0 1 1,844

Index Scan Backward using _hyper_1_2042_chunk_symbol_time on _hyper_1_2042_chunk t_27 (cost=0.43..43,485.84 rows=1,535 width=16) (actual time=10.510..10.510 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
35. 19,706.828 19,706.828 ↑ 1,556.0 1 1,844

Index Scan Backward using _hyper_1_2043_chunk_symbol_time on _hyper_1_2043_chunk t_28 (cost=0.43..43,336.78 rows=1,556 width=16) (actual time=10.687..10.687 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
36. 19,629.380 19,629.380 ↑ 1,565.0 1 1,844

Index Scan Backward using _hyper_1_2044_chunk_symbol_time on _hyper_1_2044_chunk t_29 (cost=0.43..43,534.67 rows=1,565 width=16) (actual time=10.645..10.645 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
37. 20,302.440 20,302.440 ↑ 1,559.0 1 1,844

Index Scan Backward using _hyper_1_2045_chunk_symbol_time on _hyper_1_2045_chunk t_30 (cost=0.43..43,639.27 rows=1,559 width=16) (actual time=11.010..11.010 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
38. 18,434.468 18,434.468 ↑ 1,514.0 1 1,844

Index Scan Backward using _hyper_1_2046_chunk_symbol_time on _hyper_1_2046_chunk t_31 (cost=0.43..42,979.76 rows=1,514 width=16) (actual time=9.997..9.997 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
39. 15,205.624 15,205.624 ↑ 1,518.0 1 1,844

Index Scan Backward using _hyper_1_2047_chunk_symbol_time on _hyper_1_2047_chunk t_32 (cost=0.43..43,015.28 rows=1,518 width=16) (actual time=8.246..8.246 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
40. 5,596.540 5,596.540 ↑ 611.0 1 1,844

Index Scan Backward using _hyper_1_2048_chunk_symbol_time on _hyper_1_2048_chunk t_33 (cost=0.43..16,987.24 rows=611 width=16) (actual time=3.035..3.035 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
41. 3,348.704 3,348.704 ↑ 1,180.0 1 1,844

Index Scan Backward using _hyper_1_2049_chunk_symbol_time on _hyper_1_2049_chunk t_34 (cost=0.43..33,121.88 rows=1,180 width=16) (actual time=1.816..1.816 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
42. 767.104 767.104 ↑ 1,264.0 1 1,844

Index Scan Backward using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_35 (cost=0.43..35,413.23 rows=1,264 width=16) (actual time=0.416..0.416 rows=1 loops=1,844)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))