explain.depesz.com

PostgreSQL's explain analyze made readable

Result: JUSy

Settings
# exclusive inclusive rows x rows loops node
1. 0.016 3,383.693 ↑ 66.7 3 1

GroupAggregate (cost=26,065,454.37..26,077,152.37 rows=200 width=36) (actual time=3,383.690..3,383.693 rows=3 loops=1)

  • Group Key: trips.commodity
  • Functions: 1141
  • Options: Inlining true, Optimization true, Expressions true, Deforming true
  • Timing: Generation 162.281 ms, Inlining 391.152 ms, Optimization 6368.994 ms, Emission 3962.740 ms, Total 10885.167 ms"Execution Time: 3463.585 ms
2. 0.017 3,383.677 ↑ 83,246.4 7 1

Sort (cost=26,065,454.37..26,066,911.18 rows=582,725 width=44) (actual time=3,383.676..3,383.677 rows=7 loops=1)

  • Sort Key: trips.commodity
  • Sort Method: quicksort Memory: 25kB
3. 0.004 3,383.660 ↑ 83,246.4 7 1

Subquery Scan on trips (cost=25,547,841.74..26,009,651.30 rows=582,725 width=44) (actual time=3,383.650..3,383.660 rows=7 loops=1)

4. 0.000 3,383.656 ↑ 83,246.4 7 1

Finalize GroupAggregate (cost=25,547,841.74..25,893,106.30 rows=582,725 width=52) (actual time=3,383.648..3,383.656 rows=7 loops=1)

  • Group Key: road_movements.trip_id
5. 184.563 3,431.773 ↑ 249,739.3 7 1

Gather Merge (cost=25,547,841.74..25,754,709.11 rows=1,748,175 width=124) (actual time=3,383.615..3,431.773 rows=7 loops=1)

  • Workers Planned: 3
  • Workers Launched: 3
6. 0.043 3,247.210 ↑ 291,362.5 2 4 / 4

Sort (cost=25,546,841.70..25,548,298.51 rows=582,725 width=124) (actual time=3,247.209..3,247.210 rows=2 loops=4)

  • Sort Key: road_movements.trip_id
  • Sort Method: quicksort Memory: 25kB
  • Worker 0: Sort Method: quicksort Memory: 26kB
  • Worker 1: Sort Method: quicksort Memory: 25kB
  • Worker 2: Sort Method: quicksort Memory: 25kB
7. 9.835 3,247.167 ↑ 291,362.5 2 4 / 4

Partial HashAggregate (cost=25,374,493.62..25,491,038.62 rows=582,725 width=124) (actual time=3,241.935..3,247.167 rows=2 loops=4)

  • Group Key: road_movements.trip_id
8. 0.175 3,237.332 ↑ 120,921.1 792 4 / 4

Nested Loop Left Join (cost=224,676.00..24,177,375.20 rows=95,769,474 width=40) (actual time=3,228.493..3,237.332 rows=792 loops=4)

  • Join Filter: NULL::boolean
9. 9.068 3,237.157 ↑ 120,921.1 792 4 / 4

Parallel Hash Join (cost=224,676.00..5,023,480.40 rows=95,769,474 width=40) (actual time=3,228.489..3,237.157 rows=792 loops=4)

  • Hash Cond: (road_segments_partitioned_0.link_id = v_transit_roads.link_id)
10. 0.110 250.097 ↑ 120,921.1 792 4 / 4

Nested Loop (cost=83,299.31..4,630,686.72 rows=95,769,474 width=48) (actual time=243.090..250.097 rows=792 loops=4)

11. 11.472 247.092 ↑ 328.0 2 4 / 4

Merge Join (cost=83,298.87..84,252.75 rows=656 width=48) (actual time=243.021..247.092 rows=2 loops=4)

  • Merge Cond: (road_movements.trip_id = road_segments_partitioned_17_1.trip_id)
12. 109.170 235.485 ↑ 1.4 136,726 4 / 4

Sort (cost=80,815.04..81,284.98 rows=187,976 width=40) (actual time=217.719..235.485 rows=136,726 loops=4)

  • Sort Key: road_movements.trip_id
  • Sort Method: quicksort Memory: 20750kB
  • Worker 0: Sort Method: quicksort Memory: 16407kB
  • Worker 1: Sort Method: quicksort Memory: 12828kB
  • Worker 2: Sort Method: quicksort Memory: 17046kB
13. 126.315 126.315 ↑ 1.3 145,681 4 / 4

Parallel Seq Scan on road_movements (cost=0.00..64,348.16 rows=187,976 width=40) (actual time=0.032..126.315 rows=145,681 loops=4)

14. 0.015 0.135 ↑ 28.6 7 4 / 4

Sort (cost=2,483.84..2,484.34 rows=200 width=8) (actual time=0.132..0.135 rows=7 loops=4)

  • Sort Key: road_segments_partitioned_17_1.trip_id
  • Sort Method: quicksort Memory: 25kB
  • Worker 0: Sort Method: quicksort Memory: 25kB
  • Worker 1: Sort Method: quicksort Memory: 25kB
  • Worker 2: Sort Method: quicksort Memory: 25kB
15. 0.021 0.120 ↑ 28.6 7 4 / 4

HashAggregate (cost=2,436.19..2,476.19 rows=200 width=8) (actual time=0.118..0.120 rows=7 loops=4)

  • Group Key: road_segments_partitioned_17_1.trip_id
16. 0.099 0.099 ↑ 290.4 7 4 / 4

Index Only Scan using road_segments_partitioned_17_pkey on road_segments_partitioned_17 road_segments_partitioned_17_1 (cost=0.43..2,431.11 rows=2,033 width=8) (actual time=0.088..0.099 rows=7 loops=4)

  • Index Cond: (link_id = 1201710493)
  • Heap Fetches: 28
17. 0.212 2.894 ↑ 11.1 452 7 / 4

Append (cost=0.43..5,927.34 rows=5,016 width=16) (actual time=0.036..1.654 rows=452 loops=7)

18. 0.065 0.065 ↑ 8.9 11 7 / 4

Index Scan using road_segments_partitioned_0_trip_id_idx on road_segments_partitioned_0 (cost=0.43..105.96 rows=98 width=16) (actual time=0.033..0.037 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
19. 0.038 0.038 ↑ 8.5 11 7 / 4

Index Scan using road_segments_partitioned_1_trip_id_idx on road_segments_partitioned_1 (cost=0.43..101.80 rows=94 width=16) (actual time=0.019..0.022 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
20. 0.038 0.038 ↑ 8.5 11 7 / 4

Index Scan using road_segments_partitioned_2_trip_id_idx on road_segments_partitioned_2 (cost=0.43..101.80 rows=94 width=16) (actual time=0.019..0.022 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
21. 0.032 0.032 ↑ 12.6 8 7 / 4

Index Scan using road_segments_partitioned_3_trip_id_idx on road_segments_partitioned_3 (cost=0.43..109.37 rows=101 width=16) (actual time=0.016..0.018 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
22. 0.051 0.051 ↑ 13.6 8 7 / 4

Index Scan using road_segments_partitioned_4_trip_id_idx on road_segments_partitioned_4 (cost=0.43..117.80 rows=109 width=16) (actual time=0.027..0.029 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
23. 0.032 0.032 ↑ 12.4 8 7 / 4

Index Scan using road_segments_partitioned_5_trip_id_idx on road_segments_partitioned_5 (cost=0.43..107.12 rows=99 width=16) (actual time=0.016..0.018 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
24. 0.030 0.030 ↑ 8.8 11 7 / 4

Index Scan using road_segments_partitioned_6_trip_id_idx on road_segments_partitioned_6 (cost=0.43..105.02 rows=97 width=16) (actual time=0.013..0.017 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
25. 0.033 0.033 ↑ 10.0 10 7 / 4

Index Scan using road_segments_partitioned_7_trip_id_idx on road_segments_partitioned_7 (cost=0.43..108.17 rows=100 width=16) (actual time=0.015..0.019 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
26. 0.035 0.035 ↑ 9.1 10 7 / 4

Index Scan using road_segments_partitioned_8_trip_id_idx on road_segments_partitioned_8 (cost=0.43..98.58 rows=91 width=16) (actual time=0.017..0.020 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
27. 0.037 0.037 ↑ 17.0 6 7 / 4

Index Scan using road_segments_partitioned_9_trip_id_idx on road_segments_partitioned_9 (cost=0.43..110.33 rows=102 width=16) (actual time=0.018..0.021 rows=6 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
28. 0.044 0.044 ↑ 9.5 10 7 / 4

Index Scan using road_segments_partitioned_10_trip_id_idx on road_segments_partitioned_10 (cost=0.43..102.78 rows=95 width=16) (actual time=0.021..0.025 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
29. 0.035 0.035 ↑ 10.5 10 7 / 4

Index Scan using road_segments_partitioned_11_trip_id_idx on road_segments_partitioned_11 (cost=0.43..113.59 rows=105 width=16) (actual time=0.017..0.020 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
30. 0.038 0.038 ↑ 17.7 6 7 / 4

Index Scan using road_segments_partitioned_12_trip_id_idx on road_segments_partitioned_12 (cost=0.43..114.61 rows=106 width=16) (actual time=0.020..0.022 rows=6 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
31. 0.026 0.026 ↑ 12.6 8 7 / 4

Index Scan using road_segments_partitioned_13_trip_id_idx on road_segments_partitioned_13 (cost=0.43..109.06 rows=101 width=16) (actual time=0.013..0.015 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
32. 0.028 0.028 ↑ 25.8 4 7 / 4

Index Scan using road_segments_partitioned_14_trip_id_idx on road_segments_partitioned_14 (cost=0.43..111.35 rows=103 width=16) (actual time=0.015..0.016 rows=4 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
33. 0.035 0.035 ↑ 11.2 9 7 / 4

Index Scan using road_segments_partitioned_15_trip_id_idx on road_segments_partitioned_15 (cost=0.43..109.29 rows=101 width=16) (actual time=0.017..0.020 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
34. 0.028 0.028 ↑ 12.4 8 7 / 4

Index Scan using road_segments_partitioned_16_trip_id_idx on road_segments_partitioned_16 (cost=0.43..107.11 rows=99 width=16) (actual time=0.013..0.016 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
35. 0.033 0.033 ↑ 10.2 10 7 / 4

Index Scan using road_segments_partitioned_17_trip_id_idx on road_segments_partitioned_17 (cost=0.43..110.34 rows=102 width=16) (actual time=0.016..0.019 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
36. 0.028 0.028 ↑ 10.3 10 7 / 4

Index Scan using road_segments_partitioned_18_trip_id_idx on road_segments_partitioned_18 (cost=0.43..111.34 rows=103 width=16) (actual time=0.014..0.016 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
37. 0.032 0.032 ↑ 16.0 6 7 / 4

Index Scan using road_segments_partitioned_19_trip_id_idx on road_segments_partitioned_19 (cost=0.43..103.93 rows=96 width=16) (actual time=0.016..0.018 rows=6 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
38. 0.033 0.033 ↑ 11.4 9 7 / 4

Index Scan using road_segments_partitioned_20_trip_id_idx on road_segments_partitioned_20 (cost=0.43..111.40 rows=103 width=16) (actual time=0.016..0.019 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
39. 0.032 0.032 ↑ 8.7 12 7 / 4

Index Scan using road_segments_partitioned_21_trip_id_idx on road_segments_partitioned_21 (cost=0.43..112.46 rows=104 width=16) (actual time=0.015..0.018 rows=12 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
40. 0.032 0.032 ↑ 9.5 11 7 / 4

Index Scan using road_segments_partitioned_22_trip_id_idx on road_segments_partitioned_22 (cost=0.43..112.35 rows=104 width=16) (actual time=0.015..0.018 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
41. 0.032 0.032 ↑ 9.5 11 7 / 4

Index Scan using road_segments_partitioned_23_trip_id_idx on road_segments_partitioned_23 (cost=0.43..112.25 rows=104 width=16) (actual time=0.015..0.018 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
42. 0.038 0.038 ↑ 8.2 13 7 / 4

Index Scan using road_segments_partitioned_24_trip_id_idx on road_segments_partitioned_24 (cost=0.43..115.73 rows=107 width=16) (actual time=0.017..0.022 rows=13 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
43. 0.028 0.028 ↑ 19.8 5 7 / 4

Index Scan using road_segments_partitioned_25_trip_id_idx on road_segments_partitioned_25 (cost=0.43..107.16 rows=99 width=16) (actual time=0.015..0.016 rows=5 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
44. 0.028 0.028 ↑ 12.1 8 7 / 4

Index Scan using road_segments_partitioned_26_trip_id_idx on road_segments_partitioned_26 (cost=0.43..104.96 rows=97 width=16) (actual time=0.013..0.016 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
45. 0.028 0.028 ↑ 13.0 8 7 / 4

Index Scan using road_segments_partitioned_27_trip_id_idx on road_segments_partitioned_27 (cost=0.43..112.52 rows=104 width=16) (actual time=0.013..0.016 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
46. 0.026 0.026 ↑ 24.0 4 7 / 4

Index Scan using road_segments_partitioned_28_trip_id_idx on road_segments_partitioned_28 (cost=0.43..103.95 rows=96 width=16) (actual time=0.013..0.015 rows=4 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
47. 0.026 0.026 ↑ 10.8 9 7 / 4

Index Scan using road_segments_partitioned_29_trip_id_idx on road_segments_partitioned_29 (cost=0.43..105.02 rows=97 width=16) (actual time=0.013..0.015 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
48. 0.033 0.033 ↑ 14.3 7 7 / 4

Index Scan using road_segments_partitioned_30_trip_id_idx on road_segments_partitioned_30 (cost=0.43..108.23 rows=100 width=16) (actual time=0.017..0.019 rows=7 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
49. 0.037 0.037 ↑ 9.0 11 7 / 4

Index Scan using road_segments_partitioned_31_trip_id_idx on road_segments_partitioned_31 (cost=0.43..107.06 rows=99 width=16) (actual time=0.017..0.021 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
50. 0.030 0.030 ↑ 12.8 8 7 / 4

Index Scan using road_segments_partitioned_32_trip_id_idx on road_segments_partitioned_32 (cost=0.43..110.32 rows=102 width=16) (actual time=0.015..0.017 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
51. 0.033 0.033 ↑ 10.7 9 7 / 4

Index Scan using road_segments_partitioned_33_trip_id_idx on road_segments_partitioned_33 (cost=0.43..103.82 rows=96 width=16) (actual time=0.016..0.019 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
52. 0.035 0.035 ↑ 11.0 9 7 / 4

Index Scan using road_segments_partitioned_34_trip_id_idx on road_segments_partitioned_34 (cost=0.43..107.09 rows=99 width=16) (actual time=0.018..0.020 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
53. 0.032 0.032 ↑ 7.7 12 7 / 4

Index Scan using road_segments_partitioned_35_trip_id_idx on road_segments_partitioned_35 (cost=0.43..99.61 rows=92 width=16) (actual time=0.015..0.018 rows=12 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
54. 0.028 0.028 ↑ 11.9 8 7 / 4

Index Scan using road_segments_partitioned_36_trip_id_idx on road_segments_partitioned_36 (cost=0.43..102.90 rows=95 width=16) (actual time=0.013..0.016 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
55. 0.035 0.035 ↑ 10.7 9 7 / 4

Index Scan using road_segments_partitioned_37_trip_id_idx on road_segments_partitioned_37 (cost=0.43..103.84 rows=96 width=16) (actual time=0.017..0.020 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
56. 0.032 0.032 ↑ 10.4 9 7 / 4

Index Scan using road_segments_partitioned_38_trip_id_idx on road_segments_partitioned_38 (cost=0.43..101.75 rows=94 width=16) (actual time=0.015..0.018 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
57. 0.028 0.028 ↑ 11.3 9 7 / 4

Index Scan using road_segments_partitioned_39_trip_id_idx on road_segments_partitioned_39 (cost=0.43..110.34 rows=102 width=16) (actual time=0.013..0.016 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
58. 0.032 0.032 ↑ 10.7 10 7 / 4

Index Scan using road_segments_partitioned_40_trip_id_idx on road_segments_partitioned_40 (cost=0.43..115.69 rows=107 width=16) (actual time=0.015..0.018 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
59. 0.032 0.032 ↑ 11.3 10 7 / 4

Index Scan using road_segments_partitioned_41_trip_id_idx on road_segments_partitioned_41 (cost=0.43..121.98 rows=113 width=16) (actual time=0.016..0.018 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
60. 0.033 0.033 ↑ 11.4 9 7 / 4

Index Scan using road_segments_partitioned_42_trip_id_idx on road_segments_partitioned_42 (cost=0.43..111.39 rows=103 width=16) (actual time=0.016..0.019 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
61. 0.030 0.030 ↑ 9.9 11 7 / 4

Index Scan using road_segments_partitioned_43_trip_id_idx on road_segments_partitioned_43 (cost=0.43..117.72 rows=109 width=16) (actual time=0.014..0.017 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
62. 0.033 0.033 ↑ 12.5 8 7 / 4

Index Scan using road_segments_partitioned_44_trip_id_idx on road_segments_partitioned_44 (cost=0.43..108.15 rows=100 width=16) (actual time=0.017..0.019 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
63. 0.035 0.035 ↑ 9.3 11 7 / 4

Index Scan using road_segments_partitioned_45_trip_id_idx on road_segments_partitioned_45 (cost=0.43..110.34 rows=102 width=16) (actual time=0.017..0.020 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
64. 0.028 0.028 ↑ 10.6 9 7 / 4

Index Scan using road_segments_partitioned_46_trip_id_idx on road_segments_partitioned_46 (cost=0.43..102.85 rows=95 width=16) (actual time=0.013..0.016 rows=9 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
65. 1.059 1.059 ↑ 12.0 8 7 / 4

Index Scan using road_segments_partitioned_47_trip_id_idx on road_segments_partitioned_47 (cost=0.43..103.91 rows=96 width=16) (actual time=0.602..0.605 rows=8 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
66. 0.032 0.032 ↑ 9.7 10 7 / 4

Index Scan using road_segments_partitioned_48_trip_id_idx on road_segments_partitioned_48 (cost=0.43..104.93 rows=97 width=16) (actual time=0.015..0.018 rows=10 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
67. 0.028 0.028 ↑ 9.8 11 7 / 4

Index Scan using road_segments_partitioned_49_trip_id_idx on road_segments_partitioned_49 (cost=0.43..116.67 rows=108 width=16) (actual time=0.013..0.016 rows=11 loops=7)

  • Index Cond: (trip_id = road_movements.trip_id)
68. 174.416 2,977.992 ↑ 1.3 217,777 4 / 4

Parallel Hash (cost=84,473.58..84,473.58 rows=281,003 width=8) (actual time=2,977.992..2,977.992 rows=217,777 loops=4)

  • Buckets: 1048576 Batches: 1 Memory Usage: 42336kB
69. 2,803.576 2,803.576 ↑ 1.3 217,777 4 / 4

Parallel Seq Scan on v_transit_roads (cost=0.00..84,473.58 rows=281,003 width=8) (actual time=2,682.766..2,803.576 rows=217,777 loops=4)

70. 0.000 0.000 ↓ 0.0 0 3,167 / 4

Result (cost=0.00..0.00 rows=0 width=0) (actual time=0.000..0.000 rows=0 loops=3,167)

  • One-Time Filter: false