explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Bl42

Settings
# exclusive inclusive rows x rows loops node
1. 13.642 538,037.782 ↓ 1.0 1,845 1

Seq Scan on symbols s (cost=0.00..2,765,539.87 rows=1,838 width=20) (actual time=2.769..538,037.782 rows=1,845 loops=1)

  • Buffers: shared hit=56415004 read=1
  • I/O Timings: read=0.012
2.          

SubPlan (forSeq Scan)

3. 57.195 276,395.760 ↑ 1.0 1 1,845

Limit (cost=726.68..752.32 rows=1 width=16) (actual time=149.803..149.808 rows=1 loops=1,845)

  • Buffers: shared hit=29139839 read=1
  • I/O Timings: read=0.012
4. 1.845 276,338.565 ↑ 23,297.0 1 1,845

Custom Scan (ConstraintAwareAppend) (cost=726.68..597,974.72 rows=23,297 width=16) (actual time=149.777..149.777 rows=1 loops=1,845)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
  • Buffers: shared hit=29139839 read=1
  • I/O Timings: read=0.012
5. 9.225 276,336.720 ↑ 23,297.0 1 1,845

Merge Append (cost=726.68..597,974.72 rows=23,297 width=16) (actual time=149.776..149.776 rows=1 loops=1,845)

  • Sort Key: t_1."time
  • Buffers: shared hit=29139839 read=1
  • I/O Timings: read=0.012
6. 3,101.445 3,101.445 ↑ 106.0 1 1,845

Index Scan using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_1 (cost=0.43..3,199.10 rows=106 width=16) (actual time=1.681..1.681 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=333830 read=1
  • I/O Timings: read=0.012
7. 21,271.005 21,271.005 ↑ 1,331.0 1 1,845

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.528..11.529 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2187605
8. 10,975.905 10,975.905 ↑ 650.0 1 1,845

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.949..5.949 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=1149154
9. 9,226.845 9,226.845 ↑ 430.0 1 1,845

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=5.001..5.001 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=980144
10. 32,416.650 32,416.650 ↑ 1,665.0 1 1,845

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.570..17.570 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=3457557
11. 25,265.430 25,265.430 ↑ 1,625.0 1 1,845

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.694..13.694 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2701074
12. 21,566.205 21,566.205 ↑ 1,566.0 1 1,845

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.689..11.689 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2240969
13. 20,588.355 20,588.355 ↑ 1,554.0 1 1,845

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.159..11.159 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2177494
14. 20,804.220 20,804.220 ↑ 1,535.0 1 1,845

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.276..11.276 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2205470
15. 19,697.220 19,697.220 ↑ 1,556.0 1 1,845

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.676..10.676 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2095964
16. 19,767.330 19,767.330 ↑ 1,565.0 1 1,845

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.714..10.714 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2093852
17. 19,651.095 19,651.095 ↑ 1,559.0 1 1,845

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.651..10.651 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2082599
18. 19,874.340 19,874.340 ↑ 1,514.0 1 1,845

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.772..10.772 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2091752
19. 17,658.495 17,658.495 ↑ 1,518.0 1 1,845

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.571..9.571 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=1818131
20. 6,022.080 6,022.080 ↑ 611.0 1 1,845

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.264..3.264 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=645570
21. 5,802.525 5,802.525 ↑ 1,180.0 1 1,845

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.145..3.145 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=600476
22. 2,638.350 2,638.350 ↑ 1,298.0 1 1,845

Index Scan using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_17 (cost=0.43..36,449.69 rows=1,298 width=16) (actual time=1.430..1.430 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=278198
23. 57.195 261,628.380 ↑ 1.0 1 1,845

Limit (cost=726.68..752.32 rows=1 width=16) (actual time=141.799..141.804 rows=1 loops=1,845)

  • Buffers: shared hit=27275155
24. 1.845 261,571.185 ↑ 23,297.0 1 1,845

Custom Scan (ConstraintAwareAppend) (cost=726.68..597,974.72 rows=23,297 width=16) (actual time=141.772..141.773 rows=1 loops=1,845)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
  • Buffers: shared hit=27275155
25. 12.915 261,569.340 ↑ 23,297.0 1 1,845

Merge Append (cost=726.68..597,974.72 rows=23,297 width=16) (actual time=141.772..141.772 rows=1 loops=1,845)

  • Sort Key: t_19."time" DESC
  • Buffers: shared hit=27275155
26. 3,158.640 3,158.640 ↑ 106.0 1 1,845

Index Scan Backward using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_19 (cost=0.43..3,199.10 rows=106 width=16) (actual time=1.712..1.712 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=334798
27. 21,704.580 21,704.580 ↑ 1,331.0 1 1,845

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.764..11.764 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2223283
28. 10,939.005 10,939.005 ↑ 650.0 1 1,845

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.929..5.929 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=1139132
29. 8,913.195 8,913.195 ↑ 430.0 1 1,845

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.831..4.831 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=937179
30. 28,409.310 28,409.310 ↑ 1,665.0 1 1,845

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.398..15.398 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2968287
31. 23,119.695 23,119.695 ↑ 1,625.0 1 1,845

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.531..12.531 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2413726
32. 20,723.040 20,723.040 ↑ 1,566.0 1 1,845

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.231..11.232 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2162630
33. 20,542.230 20,542.230 ↑ 1,554.0 1 1,845

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.134..11.134 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2139155
34. 19,687.995 19,687.995 ↑ 1,535.0 1 1,845

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.671..10.671 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2048232
35. 20,068.065 20,068.065 ↑ 1,556.0 1 1,845

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.877..10.877 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2075807
36. 19,830.060 19,830.060 ↑ 1,565.0 1 1,845

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.748..10.748 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2073347
37. 20,538.540 20,538.540 ↑ 1,559.0 1 1,845

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.132..11.132 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=2137772
38. 18,702.765 18,702.765 ↑ 1,514.0 1 1,845

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=10.137..10.137 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=1939285
39. 15,283.980 15,283.980 ↑ 1,518.0 1 1,845

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.284..8.284 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=1573826
40. 5,638.320 5,638.320 ↑ 611.0 1 1,845

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.056..3.056 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=614109
41. 3,509.190 3,509.190 ↑ 1,180.0 1 1,845

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.902..1.902 rows=1 loops=1,845)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=369012
42. 787.815 787.815 ↑ 1,298.0 1 1,845

Index Scan Backward using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_35 (cost=0.43..36,449.69 rows=1,298 width=16) (actual time=0.427..0.427 rows=1 loops=1,845)

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