explain.depesz.com

PostgreSQL's explain analyze made readable

Result: yRhh : 12123

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

Limit (cost=1,028,043.58..1,028,044.18 rows=10 width=88) (actual time=61.879..61.879 rows=0 loops=1)

2. 0.004 61.879 ↓ 0.0 0 1

GroupAggregate (cost=1,028,043.58..1,028,055.64 rows=201 width=88) (actual time=61.878..61.879 rows=0 loops=1)

  • Group Key: fftp.tp_timestamp, fftp.tp_latitude, fftp.tp_longitude, fftp.tp_speed, fftp.tp_io_engineon, fftp.tp_bak1, fftp.tp_bak2, fftp.tp_bak3, fftp.tp_bak4, fftp.tp_bak1_filter, fftp.tp_bak2_filter, fftp.tp_bak1_predict, fftp.tp_bak2_predict, fft (...)
3. 0.023 61.875 ↓ 0.0 0 1

Sort (cost=1,028,043.58..1,028,044.09 rows=201 width=88) (actual time=61.875..61.875 rows=0 loops=1)

  • Sort Key: fftp.tp_timestamp, fftp.tp_latitude, fftp.tp_longitude, fftp.tp_speed, fftp.tp_io_engineon, fftp.tp_bak1, fftp.tp_bak2, fftp.tp_bak3, fftp.tp_bak4, fftp.tp_bak1_filter, fftp.tp_bak2_filter, fftp.tp_bak1_predict, fftp.tp_bak2_predict (...)
  • Sort Method: quicksort Memory: 25kB
4. 0.001 61.852 ↓ 0.0 0 1

Result (cost=0.00..1,028,035.89 rows=201 width=88) (actual time=61.852..61.852 rows=0 loops=1)

5. 0.007 61.851 ↓ 0.0 0 1

Append (cost=0.00..1,028,033.88 rows=201 width=88) (actual time=61.851..61.851 rows=0 loops=1)

6. 0.002 0.002 ↓ 0.0 0 1

Seq Scan on uzgps_track_point fftp (cost=0.00..0.00 rows=1 width=88) (actual time=0.002..0.002 rows=0 loops=1)

  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_unit_id = 1060) AND (tp_status = 'A (...)
7. 27.820 27.820 ↓ 0.0 0 1

Index Scan using uzgps_track_point_2018m11_tp_unit_id_tp_timestamp_idx on uzgps_track_point_2018m11 fftp_1 (cost=0.57..11.60 rows=1 width=88) (actual time=27.820..27.820 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
  • Rows Removed by Filter: 15044
8. 27.095 27.095 ↓ 0.0 0 1

Index Scan using uzgps_track_point_2018m12_tp_unit_id_tp_timestamp_idx on uzgps_track_point_2018m12 fftp_2 (cost=0.57..904,156.93 rows=1 width=88) (actual time=27.095..27.095 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
  • Rows Removed by Filter: 15403
9. 0.003 0.050 ↓ 0.0 0 1

Bitmap Heap Scan on uzgps_track_point_9999m99 fftp_3 (cost=5.61..329.14 rows=1 width=88) (actual time=0.049..0.050 rows=0 loops=1)

  • Recheck Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
10. 0.047 0.047 ↓ 0.0 0 1

Bitmap Index Scan on uzgps_track_point_9999m99_tp_unit_id_tp_timestamp_idx (cost=0.00..5.61 rows=95 width=0) (actual time=0.047..0.047 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
11. 5.835 6.648 ↓ 0.0 0 1

Bitmap Heap Scan on uzgps_track_point_2019m01 fftp_4 (cost=1,533.37..123,376.84 rows=186 width=88) (actual time=6.648..6.648 rows=0 loops=1)

  • Recheck Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
  • Rows Removed by Filter: 2944
  • Heap Blocks: exact=2092
12. 0.813 0.813 ↑ 12.6 2,944 1

Bitmap Index Scan on uzgps_track_point_2019m01_tp_unit_id_tp_timestamp_idx (cost=0.00..1,533.32 rows=37,180 width=0) (actual time=0.812..0.813 rows=2,944 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
13. 0.003 0.056 ↓ 0.0 0 1

Bitmap Heap Scan on uzgps_track_point_2019m02 fftp_5 (cost=4.32..14.62 rows=1 width=88) (actual time=0.056..0.056 rows=0 loops=1)

  • Recheck Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
14. 0.053 0.053 ↓ 0.0 0 1

Bitmap Index Scan on uzgps_track_point_2019m02_tp_unit_id_tp_timestamp_idx (cost=0.00..4.32 rows=3 width=0) (actual time=0.053..0.053 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
15. 0.020 0.020 ↓ 0.0 0 1

Index Scan using uzgps_track_point_2019m03_tp_unit_id_tp_timestamp_idx on uzgps_track_point_2019m03 fftp_6 (cost=0.15..8.18 rows=1 width=88) (actual time=0.020..0.020 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
16. 0.021 0.021 ↓ 0.0 0 1

Seq Scan on uzgps_track_point_2019m04 fftp_7 (cost=0.00..4.02 rows=1 width=88) (actual time=0.021..0.021 rows=0 loops=1)

  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_unit_id = 1060) AND (tp_status = 'A (...)
  • Rows Removed by Filter: 37
17. 0.014 0.014 ↓ 0.0 0 1

Index Scan using uzgps_track_point_2019m05_tp_unit_id_tp_timestamp_idx on uzgps_track_point_2019m05 fftp_8 (cost=0.15..8.17 rows=1 width=88) (actual time=0.014..0.014 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
18. 0.012 0.012 ↓ 0.0 0 1

Index Scan using uzgps_track_point_2019m06_tp_unit_id_tp_timestamp_idx on uzgps_track_point_2019m06 fftp_9 (cost=0.15..8.17 rows=1 width=88) (actual time=0.012..0.012 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
19. 0.011 0.011 ↓ 0.0 0 1

Seq Scan on uzgps_track_point_2019m07 fftp_10 (cost=0.00..1.39 rows=1 width=88) (actual time=0.011..0.011 rows=0 loops=1)

  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_unit_id = 1060) AND (tp_status = 'A (...)
  • Rows Removed by Filter: 14
20. 0.015 0.015 ↓ 0.0 0 1

Seq Scan on uzgps_track_point_2019m08 fftp_11 (cost=0.00..2.85 rows=1 width=88) (actual time=0.015..0.015 rows=0 loops=1)

  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_unit_id = 1060) AND (tp_status = 'A (...)
  • Rows Removed by Filter: 31
21. 0.000 0.022 ↓ 0.0 0 1

Bitmap Heap Scan on uzgps_track_point_2019m09 fftp_12 (cost=4.61..90.07 rows=1 width=88) (actual time=0.022..0.022 rows=0 loops=1)

  • Recheck Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
22. 0.022 0.022 ↓ 0.0 0 1

Bitmap Index Scan on uzgps_track_point_2019m09_tp_unit_id_tp_timestamp_idx (cost=0.00..4.61 rows=25 width=0) (actual time=0.021..0.022 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
23. 0.001 0.017 ↓ 0.0 0 1

Bitmap Heap Scan on uzgps_track_point_2019m10 fftp_13 (cost=4.32..14.51 rows=1 width=88) (actual time=0.017..0.017 rows=0 loops=1)

  • Recheck Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND (tp_status = 'A'::bpchar))
24. 0.016 0.016 ↓ 0.0 0 1

Bitmap Index Scan on uzgps_track_point_2019m10_tp_unit_id_tp_timestamp_idx (cost=0.00..4.32 rows=3 width=0) (actual time=0.016..0.016 rows=0 loops=1)

  • Index Cond: ((tp_unit_id = 1060) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_timestamp > (('now'::cstring)::date - '6 mons'::interval)))
25. 0.033 0.033 ↓ 0.0 0 1

Seq Scan on uzgps_track_point_2019m11 fftp_14 (cost=0.00..6.34 rows=1 width=88) (actual time=0.033..0.033 rows=0 loops=1)

  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_unit_id = 1060) AND (tp_status = 'A (...)
  • Rows Removed by Filter: 85
26. 0.008 0.008 ↓ 0.0 0 1

Seq Scan on uzgps_track_point_2019m12 fftp_15 (cost=0.00..1.05 rows=1 width=88) (actual time=0.008..0.008 rows=0 loops=1)

  • Filter: (((tp_bak1 IS NOT NULL) OR (tp_bak2 IS NOT NULL) OR (tp_bak3 IS NOT NULL) OR (tp_bak4 IS NOT NULL)) AND ('2018-11-01 00:00:00'::timestamp without time zone <= tp_timestamp) AND (tp_unit_id = 1060) AND (tp_status = 'A (...)
  • Rows Removed by Filter: 2