explain.depesz.com

PostgreSQL's explain analyze made readable

Result: rRBt

Settings
# exclusive inclusive rows x rows loops node
1. 0.214 3,515.391 ↓ 29.8 149 1

Subquery Scan on T1 (cost=4,978.22..4,978.24 rows=5 width=375) (actual time=3,515.168..3,515.391 rows=149 loops=1)

  • Output: "T1"."quotedShippingDate13_3", "T1".id0_5, "T1".urn2_3, "T1".id0_3, "T1".flipped3_5, "T1".notes4_5, "T1".current_location7_5, "T1".rack_id8_5, CASE WHEN ("T1".result2_0_7 IS NULL) THEN NULL::text ELSE ("T1".result2_6_7)::text END, CASE WHEN ("T1".result2_0_7 IS NULL) THEN NULL::text ELSE ("T1".result2_5_7)::text END, "T1".slot_index9_5, "T1".state3_10, "T1".result2_0_17, "T1".result2_6_17, "T1".result2_7_17, "T1".result2_8_17, "T1".result2_9_17, "T1".result2_10_17, "T1".result2_11_17, "T1".result2_0_21, "T1".result2_6_21, "T1".result2_7_21, "T1".result2_8_21, "T1".result2_9_21, "T1".result2_10_21, "T1".result2_11_21, "T1".state3_12, CASE WHEN ("T1".result2_0_9 IS NULL) THEN NULL::integer ELSE "T1".result2_3_9 END, "T1".compatible_with_robot5_5
2. 0.483 3,515.177 ↓ 29.8 149 1

Sort (cost=4,978.22..4,978.22 rows=5 width=21,302) (actual time=3,515.162..3,515.177 rows=149 loops=1)

  • Output: NULL::integer, NULL::integer, NULL::integer, NULL::integer, NULL::"orderId", NULL::timestamp with time zone, NULL::urn, NULL::character varying(255), NULL::"quoteId", NULL::character varying(255), NULL::boolean, NULL::real, NULL::integer, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::integer, NULL::character varying(255), NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::boolean, NULL::"userId", NULL::"userId", NULL::"userAddressId", NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(1024), NULL::character varying(256), NULL::timestamp with time zone, NULL::real, NULL::real, NULL::real, NULL::real, NULL::double precision, NULL::character varying(255), NULL::double precision, NULL::double precision, NULL::real, NULL::integer, NULL::integer, NULL::integer, NULL::double precision, NULL::double precision, NULL::character varying(255), NULL::"instId", NULL::real, NULL::real, NULL::real, NULL::real, NULL::boolean, NULL::boolean, NULL::text, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::text, NULL::real, NULL::text, NULL::boolean, NULL::"userId", NULL::"userId", NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::character varying(255), NULL::email, NULL::character varying(255), NULL::boolean, NULL::character varying(20), NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::boolean, NULL::boolean, NULL::timestamp with time zone, NULL::boolean, NULL::boolean, NULL::boolean, NULL::character varying(255), NULL::character varying(255), NULL::text, NULL::character varying(255), NULL::character varying(255), NULL::boolean, NULL::boolean, "T1_3".id, NULL::timestamp with time zone, "T1_3".urn, NULL::character varying(255), NULL::"quoteId", NULL::character varying(255), NULL::boolean, NULL::real, NULL::integer, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::integer, NULL::character varying(255), "T1_3"."quotedShippingDate", NULL::timestamp with time zone, NULL::boolean, NULL::"userId", NULL::"userId", NULL::"userAddressId", NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(1024), NULL::character varying(256), NULL::timestamp with time zone, NULL::real, NULL::real, NULL::real, NULL::real, NULL::double precision, NULL::character varying(255), NULL::double precision, NULL::double precision, NULL::real, NULL::integer, NULL::integer, NULL::integer, NULL::double precision, NULL::double precision, NULL::character varying(255), NULL::"instId", NULL::real, NULL::real, NULL::real, NULL::real, NULL::boolean, NULL::boolean, NULL::text, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::text, NULL::real, NULL::text, NULL::boolean, NULL::"userId", NULL::"boardOrderId", NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::"orderId", NULL::character varying(255), NULL::integer, NULL::integer, NULL::real, NULL::real, NULL::real, NULL::double precision, NULL::real, NULL::boolean, NULL::character varying(255), NULL::character varying(1024), NULL::character varying(255), NULL::"userId", NULL::timestamp with time zone, NULL::boolean, NULL::"userId", NULL::"userId", NULL::character varying(255), NULL::character varying(1024), NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::text, NULL::timestamp with time zone, "T1_5".id, NULL::timestamp with time zone, NULL::"boardOrderId", "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, NULL::timestamp with time zone, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, (false), NULL::rack_id, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, "T1_6".location, "T1_6".rack_type, NULL::rack_id, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::rack_location, NULL::rack_type, (false), NULL::rack_id, NULL::rack_location, "T1_7".bay_index, NULL::rack_id, NULL::rack_location, NULL::integer, NULL::panel_id, NULL::timestamp with time zone, NULL::panel_side, "T1_8".state, NULL::panel_id, NULL::timestamp with time zone, NULL::panel_side, "T1_10".state, (false), NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height, NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, NULL::panel_aoi_id, NULL::boolean, NULL::text, NULL::text, NULL::integer, NULL::integer, (false), NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, "T1_17".panel_aoi_id, "T1_17".is_thumbnail, "T1_17".bucket, "T1_17".key, "T1_17".width, "T1_17".height, NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, NULL::panel_aoi_id, NULL::boolean, NULL::text, NULL::text, NULL::integer, NULL::integer
  • Sort Key: "T1_3"."quotedShippingDate
  • Sort Method: quicksort Memory: 74kB
3. 0.485 3,514.694 ↓ 29.8 149 1

Hash Left Join (cost=3,534.71..4,978.21 rows=5 width=21,302) (actual time=3,506.077..3,514.694 rows=149 loops=1)

  • Output: NULL::integer, NULL::integer, NULL::integer, NULL::integer, NULL::"orderId", NULL::timestamp with time zone, NULL::urn, NULL::character varying(255), NULL::"quoteId", NULL::character varying(255), NULL::boolean, NULL::real, NULL::integer, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::integer, NULL::character varying(255), NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::boolean, NULL::"userId", NULL::"userId", NULL::"userAddressId", NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(1024), NULL::character varying(256), NULL::timestamp with time zone, NULL::real, NULL::real, NULL::real, NULL::real, NULL::double precision, NULL::character varying(255), NULL::double precision, NULL::double precision, NULL::real, NULL::integer, NULL::integer, NULL::integer, NULL::double precision, NULL::double precision, NULL::character varying(255), NULL::"instId", NULL::real, NULL::real, NULL::real, NULL::real, NULL::boolean, NULL::boolean, NULL::text, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::text, NULL::real, NULL::text, NULL::boolean, NULL::"userId", NULL::"userId", NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::character varying(255), NULL::email, NULL::character varying(255), NULL::boolean, NULL::character varying(20), NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::boolean, NULL::boolean, NULL::timestamp with time zone, NULL::boolean, NULL::boolean, NULL::boolean, NULL::character varying(255), NULL::character varying(255), NULL::text, NULL::character varying(255), NULL::character varying(255), NULL::boolean, NULL::boolean, "T1_3".id, NULL::timestamp with time zone, "T1_3".urn, NULL::character varying(255), NULL::"quoteId", NULL::character varying(255), NULL::boolean, NULL::real, NULL::integer, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::integer, NULL::character varying(255), "T1_3"."quotedShippingDate", NULL::timestamp with time zone, NULL::boolean, NULL::"userId", NULL::"userId", NULL::"userAddressId", NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(255), NULL::character varying(1024), NULL::character varying(256), NULL::timestamp with time zone, NULL::real, NULL::real, NULL::real, NULL::real, NULL::double precision, NULL::character varying(255), NULL::double precision, NULL::double precision, NULL::real, NULL::integer, NULL::integer, NULL::integer, NULL::double precision, NULL::double precision, NULL::character varying(255), NULL::"instId", NULL::real, NULL::real, NULL::real, NULL::real, NULL::boolean, NULL::boolean, NULL::text, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::text, NULL::real, NULL::text, NULL::boolean, NULL::"userId", NULL::"boardOrderId", NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::"orderId", NULL::character varying(255), NULL::integer, NULL::integer, NULL::real, NULL::real, NULL::real, NULL::double precision, NULL::real, NULL::boolean, NULL::character varying(255), NULL::character varying(1024), NULL::character varying(255), NULL::"userId", NULL::timestamp with time zone, NULL::boolean, NULL::"userId", NULL::"userId", NULL::character varying(255), NULL::character varying(1024), NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::text, NULL::timestamp with time zone, "T1_5".id, NULL::timestamp with time zone, NULL::"boardOrderId", "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, NULL::timestamp with time zone, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, (false), NULL::rack_id, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, "T1_6".location, "T1_6".rack_type, NULL::rack_id, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::timestamp with time zone, NULL::rack_location, NULL::rack_type, (false), NULL::rack_id, NULL::rack_location, "T1_7".bay_index, NULL::rack_id, NULL::rack_location, NULL::integer, NULL::panel_id, NULL::timestamp with time zone, NULL::panel_side, "T1_8".state, NULL::panel_id, NULL::timestamp with time zone, NULL::panel_side, "T1_10".state, (false), NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height, NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, NULL::panel_aoi_id, NULL::boolean, NULL::text, NULL::text, NULL::integer, NULL::integer, (false), NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, "T1_17".panel_aoi_id, "T1_17".is_thumbnail, "T1_17".bucket, "T1_17".key, "T1_17".width, "T1_17".height, NULL::panel_aoi_id, NULL::timestamp with time zone, NULL::panel_id, NULL::panel_state_type, NULL::panel_side, NULL::panel_aoi_id, NULL::boolean, NULL::text, NULL::text, NULL::integer, NULL::integer
  • Hash Cond: ((("T1_10".side)::text = ("T1_15".panel_side)::text) AND (("T1_10".state)::text = ("T1_15".panel_state)::text) AND (("T1_5".id)::bigint = ("T1_15".panel_id)::bigint))
4. 0.144 3,442.260 ↓ 29.8 149 1

Nested Loop Anti Join (cost=1,359.96..2,803.38 rows=5 width=227) (actual time=3,434.035..3,442.260 rows=149 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_7".bay_index, "T1_8".state, "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height, "T1_10".state, "T1_10".side, (false), (false), (false)
5. 0.184 3,441.570 ↓ 22.8 182 1

Nested Loop (cost=1,359.88..2,802.28 rows=8 width=243) (actual time=3,433.993..3,441.570 rows=182 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_7".bay_index, "T1_8".state, "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height, "T1_10".state, "T1_10".created_at, "T1_10".side, "T1_10".panel_id, (false), (false), (false)
6. 5.257 3,440.790 ↓ 49.7 149 1

Hash Right Join (cost=1,359.80..2,801.82 rows=3 width=224) (actual time=3,433.945..3,440.790 rows=149 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_7".bay_index, "T1_8".state, "T1_8".panel_id, "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height, (false), (false), (false)
  • Hash Cond: ((("T1_12".panel_side)::text = ("T1_8".side)::text) AND (("T1_12".panel_state)::text = ("T1_8".state)::text) AND (("T1_12".panel_id)::bigint = ("T1_5".id)::bigint))
7. 22.247 109.652 ↓ 1.5 18,344 1

Hash Anti Join (cost=872.21..2,286.18 rows=12,466 width=123) (actual time=53.996..109.652 rows=18,344 loops=1)

  • Output: "T1_12".panel_state, "T1_12".panel_side, "T1_12".panel_id, "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height, false
  • Hash Cond: ((("T1_12".panel_side)::text = ("T1_13".panel_side)::text) AND (("T1_12".panel_state)::text = ("T1_13".panel_state)::text) AND (("T1_12".panel_id)::bigint = ("T1_13".panel_id)::bigint))
  • Join Filter: ("T1_13".created_at > "T1_12".created_at)
  • Rows Removed by Join Filter: 18,999
8. 16.948 55.297 ↓ 1.0 18,936 1

Hash Join (cost=426.66..1,632.45 rows=18,699 width=130) (actual time=21.600..55.297 rows=18,936 loops=1)

  • Output: "T1_12".created_at, "T1_12".panel_state, "T1_12".panel_side, "T1_12".panel_id, "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height
  • Inner Unique: true
  • Hash Cond: (("T1_14".panel_aoi_id)::bigint = ("T1_12".id)::bigint)
9. 17.026 17.026 ↑ 1.0 29,705 1

Seq Scan on uniplex.panel_aoi_image "T1_14" (cost=0.00..1,190.11 rows=29,857 width=103) (actual time=0.039..17.026 rows=29,705 loops=1)

  • Output: "T1_14".panel_aoi_id, "T1_14".is_thumbnail, "T1_14".bucket, "T1_14".key, "T1_14".width, "T1_14".height
  • Filter: "T1_14".is_thumbnail
  • Rows Removed by Filter: 29,705
10. 9.823 21.323 ↓ 1.0 18,938 1

Hash (cost=360.55..360.55 rows=18,888 width=35) (actual time=21.322..21.323 rows=18,938 loops=1)

  • Output: "T1_12".created_at, "T1_12".panel_state, "T1_12".panel_side, "T1_12".panel_id, "T1_12".id
  • Buckets: 32,768 Batches: 1 Memory Usage: 1,588kB
11. 11.500 11.500 ↓ 1.0 18,938 1

Seq Scan on uniplex.panel_aoi "T1_12" (cost=0.00..360.55 rows=18,888 width=35) (actual time=0.029..11.500 rows=18,938 loops=1)

  • Output: "T1_12".created_at, "T1_12".panel_state, "T1_12".panel_side, "T1_12".panel_id, "T1_12".id
  • Filter: (("T1_12".panel_side)::text = 'top'::text)
  • Rows Removed by Filter: 10,771
12. 18.807 32.108 ↓ 1.0 18,938 1

Hash (cost=360.55..360.55 rows=18,888 width=27) (actual time=32.107..32.108 rows=18,938 loops=1)

  • Output: "T1_13".created_at, "T1_13".panel_state, "T1_13".panel_side, "T1_13".panel_id
  • Buckets: 32,768 Batches: 1 Memory Usage: 1,440kB
13. 13.301 13.301 ↓ 1.0 18,938 1

Seq Scan on uniplex.panel_aoi "T1_13" (cost=0.00..360.55 rows=18,888 width=27) (actual time=0.011..13.301 rows=18,938 loops=1)

  • Output: "T1_13".created_at, "T1_13".panel_state, "T1_13".panel_side, "T1_13".panel_id
  • Filter: (("T1_13".panel_side)::text = 'top'::text)
  • Rows Removed by Filter: 10,771
14. 0.206 3,325.881 ↓ 49.7 149 1

Hash (cost=487.57..487.57 rows=3 width=125) (actual time=3,325.881..3,325.881 rows=149 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_7".bay_index, "T1_8".state, "T1_8".side, "T1_8".panel_id, (false), (false)
  • Buckets: 1,024 Batches: 1 Memory Usage: 28kB
15. 0.248 3,325.675 ↓ 49.7 149 1

Nested Loop Anti Join (cost=0.39..487.57 rows=3 width=125) (actual time=187.095..3,325.675 rows=149 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_7".bay_index, "T1_8".state, "T1_8".side, "T1_8".panel_id, (false), (false)
16. 0.246 3,325.035 ↓ 49.0 196 1

Nested Loop (cost=0.31..487.09 rows=4 width=133) (actual time=187.076..3,325.035 rows=196 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_7".bay_index, "T1_8".state, "T1_8".created_at, "T1_8".side, "T1_8".panel_id, (false), (false)
17. 0.239 3,323.895 ↓ 149.0 149 1

Nested Loop Left Join (cost=0.23..486.76 rows=1 width=106) (actual time=187.034..3,323.895 rows=149 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_7".bay_index, (false), (false)
  • Join Filter: (("T1_7".rack_id)::bigint = CASE WHEN ((false) IS NULL) THEN NULL::bigint ELSE ("T1_6".id)::bigint END)
  • Rows Removed by Join Filter: 973
18. 0.327 3,323.358 ↓ 149.0 149 1

Nested Loop Left Join (cost=0.23..485.72 rows=1 width=109) (actual time=187.018..3,323.358 rows=149 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_6".location, "T1_6".rack_type, "T1_6".id, (false)
  • Inner Unique: true
  • Join Filter: (("T1_6".id)::bigint = ("T1_5".rack_id)::bigint)
  • Rows Removed by Join Filter: 1,146
19. 366.324 3,322.733 ↓ 149.0 149 1

Nested Loop (cost=0.23..484.64 rows=1 width=87) (actual time=187.007..3,322.733 rows=149 loops=1)

  • Output: "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index
  • Inner Unique: true
  • Join Filter: (("T1_3".id)::bigint = ("T1_4"."projectOrderId")::bigint)
  • Rows Removed by Join Filter: 503,093
20. 713.165 2,453.167 ↓ 409.1 503,242 1

Nested Loop (cost=0.17..285.08 rows=1,230 width=103) (actual time=0.108..2,453.167 rows=503,242 loops=1)

  • Output: "T1_1".id, "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate", "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_5".board_order_id
  • Join Filter: ((("T1_5".current_location)::text <> 'PanelShipped'::text) OR ((("T1_1".status)::text <> 'canceled'::text) AND (("T1_1".status)::text <> 'shipped'::text)))
  • Rows Removed by Join Filter: 4,583,670
21. 1.269 6.626 ↓ 976.0 976 1

Nested Loop (cost=0.17..140.16 rows=1 width=51) (actual time=0.091..6.626 rows=976 loops=1)

  • Output: "T1_1".status, "T1_1".id, "T1_3".id, "T1_3".urn, "T1_3"."quotedShippingDate
  • Inner Unique: true
22. 0.305 2.429 ↓ 976.0 976 1

Nested Loop (cost=0.11..140.00 rows=1 width=16) (actual time=0.082..2.429 rows=976 loops=1)

  • Output: "T1_1".status, "T1_1".id
23. 0.052 0.052 ↑ 1.0 1 1

Index Scan using uniplex_user_username0_idx on uniplex."user" "T1_2" (cost=0.06..4.06 rows=1 width=8) (actual time=0.049..0.052 rows=1 loops=1)

  • Output: "T1_2".id
  • Index Cond: (("T1_2".username)::text = 'PicoFactory'::text)
  • Filter: ("T1_2"."isOrganization" AND ("T1_2"."deletedAt" IS NULL))
24. 2.072 2.072 ↑ 1.2 976 1

Index Scan using "projectOrder_assemblyManufacturerId_idx" on uniplex."projectOrder" "T1_1" (cost=0.06..132.50 rows=1,147 width=24) (actual time=0.030..2.072 rows=976 loops=1)

  • Output: "T1_1".id, "T1_1"."createdAt", "T1_1".urn, "T1_1".name, "T1_1"."projectQuoteID", "T1_1".status, "T1_1"."firstOrder", "T1_1".value, "T1_1"."leadTime", "T1_1"."updatedAt", "T1_1"."deletedAt", "T1_1".quantity, "T1_1"."paymentStatus", "T1_1"."quotedShippingDate", "T1_1"."estimatedShippingDate", "T1_1".success, "T1_1"."ownerID", "T1_1"."creatorID", "T1_1"."addressID", "T1_1"."bomStatus", "T1_1"."bomNote", "T1_1"."stencilStatus", "T1_1"."stencilNote", "T1_1".note, "T1_1"."trackingNumber", "T1_1"."shippedDate", "T1_1"."assemblyTime", "T1_1"."bomCost", "T1_1"."stencilCost", "T1_1"."shippingCost", "T1_1"."shippingUserPrice", "T1_1"."shippingService", "T1_1"."bomUserPrice", "T1_1"."assemblyUserPrice", "T1_1"."assemblyCost", "T1_1"."quantityIndex", "T1_1"."leadTimeIndex", "T1_1"."assemblyLeadTime", "T1_1"."stripeUserPrice", "T1_1"."totalUserPrice", "T1_1"."assemblyProgramStatus", "T1_1"."assemblyManufacturerId", "T1_1"."assemblyCostStorm", "T1_1"."assemblyCostSierra", "T1_1"."assemblyCostScreaming", "T1_1"."assemblyCostSmartPrototyping", "T1_1"."ignoreFromMarginCalculation", "T1_1"."consignedAlreadyInStock", "T1_1"."consignedKeepInStock", "T1_1"."assemblyStatus", "T1_1"."palletLoadedBy", "T1_1"."throughHoleReviewedBy", "T1_1"."selectiveSolderProgrammedBy", "T1_1"."workOrder", "T1_1"."salesTax", "T1_1"."poNumber", "T1_1"."invoiceSent", "T1_1"."shippedDatePartial", "T1_1"."causeOfDelay", "T1_1".top_sides_remaining, "T1_1".bot_sides_remaining, "T1_1".rma, "T1_1".flow_manager_id
  • Index Cond: (("T1_1"."assemblyManufacturerId")::bigint = ("T1_2".id)::bigint)
  • Filter: ("T1_1"."deletedAt" IS NULL)
25. 2.928 2.928 ↑ 1.0 1 976

Index Scan using "projectOrder_pkey" on uniplex."projectOrder" "T1_3" (cost=0.06..0.16 rows=1 width=35) (actual time=0.003..0.003 rows=1 loops=976)

  • Output: "T1_3".id, "T1_3"."createdAt", "T1_3".urn, "T1_3".name, "T1_3"."projectQuoteID", "T1_3".status, "T1_3"."firstOrder", "T1_3".value, "T1_3"."leadTime", "T1_3"."updatedAt", "T1_3"."deletedAt", "T1_3".quantity, "T1_3"."paymentStatus", "T1_3"."quotedShippingDate", "T1_3"."estimatedShippingDate", "T1_3".success, "T1_3"."ownerID", "T1_3"."creatorID", "T1_3"."addressID", "T1_3"."bomStatus", "T1_3"."bomNote", "T1_3"."stencilStatus", "T1_3"."stencilNote", "T1_3".note, "T1_3"."trackingNumber", "T1_3"."shippedDate", "T1_3"."assemblyTime", "T1_3"."bomCost", "T1_3"."stencilCost", "T1_3"."shippingCost", "T1_3"."shippingUserPrice", "T1_3"."shippingService", "T1_3"."bomUserPrice", "T1_3"."assemblyUserPrice", "T1_3"."assemblyCost", "T1_3"."quantityIndex", "T1_3"."leadTimeIndex", "T1_3"."assemblyLeadTime", "T1_3"."stripeUserPrice", "T1_3"."totalUserPrice", "T1_3"."assemblyProgramStatus", "T1_3"."assemblyManufacturerId", "T1_3"."assemblyCostStorm", "T1_3"."assemblyCostSierra", "T1_3"."assemblyCostScreaming", "T1_3"."assemblyCostSmartPrototyping", "T1_3"."ignoreFromMarginCalculation", "T1_3"."consignedAlreadyInStock", "T1_3"."consignedKeepInStock", "T1_3"."assemblyStatus", "T1_3"."palletLoadedBy", "T1_3"."throughHoleReviewedBy", "T1_3"."selectiveSolderProgrammedBy", "T1_3"."workOrder", "T1_3"."salesTax", "T1_3"."poNumber", "T1_3"."invoiceSent", "T1_3"."shippedDatePartial", "T1_3"."causeOfDelay", "T1_3".top_sides_remaining, "T1_3".bot_sides_remaining, "T1_3".rma, "T1_3".flow_manager_id
  • Index Cond: (("T1_3".id)::bigint = ("T1_1".id)::bigint)
  • Filter: ("T1_3"."deletedAt" IS NULL)
26. 1,733.376 1,733.376 ↓ 1.0 5,212 976

Seq Scan on uniplex.panel "T1_5" (cost=0.00..121.62 rows=5,177 width=60) (actual time=0.003..1.776 rows=5,212 loops=976)

  • Output: "T1_5".id, "T1_5".flipped, "T1_5".notes, "T1_5".compatible_with_robot, "T1_5".current_location, "T1_5".rack_id, "T1_5".slot_index, "T1_5".board_order_id
  • Filter: ((("T1_5".current_location)::text <> 'PanelDestroyed'::text) AND (("T1_5".current_location)::text <> 'PanelScrapped'::text))
  • Rows Removed by Filter: 729
27. 503.242 503.242 ↑ 1.0 1 503,242

Index Scan using "boardOrder_pkey" on uniplex."boardOrder" "T1_4" (cost=0.06..0.16 rows=1 width=16) (actual time=0.001..0.001 rows=1 loops=503,242)

  • Output: "T1_4".id, "T1_4"."createdAt", "T1_4"."updatedAt", "T1_4"."projectOrderId", "T1_4".name, "T1_4".quantity, "T1_4"."leadTime", "T1_4"."calculatedCost", "T1_4"."userPrice", "T1_4"."billedCost", "T1_4"."shippingUserPrice", "T1_4"."shippingCost", "T1_4".accepted, "T1_4".status, "T1_4".note, "T1_4"."trackingNumber", "T1_4"."acceptedBy", "T1_4"."shippedDate", "T1_4".repeat, "T1_4"."manufacturerId", "T1_4"."addresseeId", "T1_4"."issuesTag", "T1_4".issue, "T1_4"."quotedShippingDate", "T1_4"."estimatedShippingDate", "T1_4"."receivedDate", "T1_4".comment, "T1_4".royal_invoice_number, "T1_4".eta
  • Index Cond: (("T1_4".id)::bigint = ("T1_5".board_order_id)::bigint)
28. 0.298 0.298 ↑ 1.5 8 149

Seq Scan on uniplex.rack "T1_6" (cost=0.00..1.04 rows=12 width=22) (actual time=0.001..0.002 rows=8 loops=149)

  • Output: "T1_6".location, "T1_6".rack_type, "T1_6".id, false
29. 0.298 0.298 ↑ 1.0 7 149

Seq Scan on uniplex.rack_in_bay "T1_7" (cost=0.00..1.02 rows=7 width=13) (actual time=0.001..0.002 rows=7 loops=149)

  • Output: "T1_7".bay_index, "T1_7".rack_id, false
30. 0.894 0.894 ↑ 3.0 1 149

Index Scan using panel_state_log_pkey on uniplex.panel_state_log "T1_8" (cost=0.08..0.32 rows=3 width=27) (actual time=0.006..0.006 rows=1 loops=149)

  • Output: "T1_8".panel_id, "T1_8".created_at, "T1_8".side, "T1_8".state
  • Index Cond: ((("T1_8".panel_id)::bigint = ("T1_5".id)::bigint) AND (("T1_8".side)::text = 'top'::text))
31. 0.392 0.392 ↓ 0.0 0 196

Index Only Scan using panel_state_log_pkey on uniplex.panel_state_log "T1_9" (cost=0.08..0.13 rows=1 width=21) (actual time=0.002..0.002 rows=0 loops=196)

  • Output: "T1_9".panel_id, "T1_9".created_at, "T1_9".side
  • Index Cond: (("T1_9".panel_id = ("T1_8".panel_id)::bigint) AND ("T1_9".created_at > "T1_8".created_at) AND ("T1_9".side = ("T1_8".side)::text) AND ("T1_9".side = 'top'::text))
  • Heap Fetches: 47
32. 0.596 0.596 ↑ 2.0 1 149

Index Scan using panel_state_log_pkey on uniplex.panel_state_log "T1_10" (cost=0.08..0.15 rows=2 width=27) (actual time=0.004..0.004 rows=1 loops=149)

  • Output: "T1_10".panel_id, "T1_10".created_at, "T1_10".side, "T1_10".state
  • Index Cond: ((("T1_10".panel_id)::bigint = ("T1_8".panel_id)::bigint) AND (("T1_10".side)::text = 'bottom'::text))
33. 0.546 0.546 ↓ 0.0 0 182

Index Only Scan using panel_state_log_pkey on uniplex.panel_state_log "T1_11" (cost=0.08..0.15 rows=1 width=21) (actual time=0.003..0.003 rows=0 loops=182)

  • Output: "T1_11".panel_id, "T1_11".created_at, "T1_11".side
  • Index Cond: (("T1_11".panel_id = ("T1_10".panel_id)::bigint) AND ("T1_11".created_at > "T1_10".created_at) AND ("T1_11".side = ("T1_10".side)::text) AND ("T1_11".side = 'bottom'::text))
  • Heap Fetches: 33
34. 8.662 71.949 ↓ 1.4 10,367 1

Hash (cost=2,141.27..2,141.27 rows=7,438 width=123) (actual time=71.949..71.949 rows=10,367 loops=1)

  • Output: "T1_15".panel_state, "T1_15".panel_side, "T1_15".panel_id, "T1_17".panel_aoi_id, "T1_17".is_thumbnail, "T1_17".bucket, "T1_17".key, "T1_17".width, "T1_17".height, (false)
  • Buckets: 16,384 (originally 8192) Batches: 1 (originally 1) Memory Usage: 1,813kB
35. 10.528 63.287 ↓ 1.4 10,367 1

Hash Anti Join (cost=811.27..2,141.27 rows=7,438 width=123) (actual time=27.339..63.287 rows=10,367 loops=1)

  • Output: "T1_15".panel_state, "T1_15".panel_side, "T1_15".panel_id, "T1_17".panel_aoi_id, "T1_17".is_thumbnail, "T1_17".bucket, "T1_17".key, "T1_17".width, "T1_17".height, false
  • Hash Cond: ((("T1_15".panel_side)::text = ("T1_16".panel_side)::text) AND (("T1_15".panel_state)::text = ("T1_16".panel_state)::text) AND (("T1_15".panel_id)::bigint = ("T1_16".panel_id)::bigint))
  • Join Filter: ("T1_16".created_at > "T1_15".created_at)
  • Rows Removed by Join Filter: 10,817
36. 11.905 38.923 ↑ 1.0 10,769 1

Hash Join (cost=400.00..1,605.79 rows=11,158 width=130) (actual time=13.353..38.923 rows=10,769 loops=1)

  • Output: "T1_15".created_at, "T1_15".panel_state, "T1_15".panel_side, "T1_15".panel_id, "T1_17".panel_aoi_id, "T1_17".is_thumbnail, "T1_17".bucket, "T1_17".key, "T1_17".width, "T1_17".height
  • Inner Unique: true
  • Hash Cond: (("T1_17".panel_aoi_id)::bigint = ("T1_15".id)::bigint)
37. 13.794 13.794 ↑ 1.0 29,705 1

Seq Scan on uniplex.panel_aoi_image "T1_17" (cost=0.00..1,190.11 rows=29,857 width=103) (actual time=0.007..13.794 rows=29,705 loops=1)

  • Output: "T1_17".panel_aoi_id, "T1_17".is_thumbnail, "T1_17".bucket, "T1_17".key, "T1_17".width, "T1_17".height
  • Filter: "T1_17".is_thumbnail
  • Rows Removed by Filter: 29,705
38. 4.493 13.224 ↑ 1.0 10,771 1

Hash (cost=360.55..360.55 rows=11,270 width=35) (actual time=13.224..13.224 rows=10,771 loops=1)

  • Output: "T1_15".created_at, "T1_15".panel_state, "T1_15".panel_side, "T1_15".panel_id, "T1_15".id
  • Buckets: 16,384 Batches: 1 Memory Usage: 886kB
39. 8.731 8.731 ↑ 1.0 10,771 1

Seq Scan on uniplex.panel_aoi "T1_15" (cost=0.00..360.55 rows=11,270 width=35) (actual time=0.008..8.731 rows=10,771 loops=1)

  • Output: "T1_15".created_at, "T1_15".panel_state, "T1_15".panel_side, "T1_15".panel_id, "T1_15".id
  • Filter: (("T1_15".panel_side)::text = 'bottom'::text)
  • Rows Removed by Filter: 18,938
40. 5.391 13.836 ↑ 1.0 10,771 1

Hash (cost=360.55..360.55 rows=11,270 width=27) (actual time=13.836..13.836 rows=10,771 loops=1)

  • Output: "T1_16".created_at, "T1_16".panel_state, "T1_16".panel_side, "T1_16".panel_id
  • Buckets: 16,384 Batches: 1 Memory Usage: 802kB
41. 8.445 8.445 ↑ 1.0 10,771 1

Seq Scan on uniplex.panel_aoi "T1_16" (cost=0.00..360.55 rows=11,270 width=27) (actual time=0.009..8.445 rows=10,771 loops=1)

  • Output: "T1_16".created_at, "T1_16".panel_state, "T1_16".panel_side, "T1_16".panel_id
  • Filter: (("T1_16".panel_side)::text = 'bottom'::text)
  • Rows Removed by Filter: 18,938
Planning time : 39.161 ms
Execution time : 3,516.325 ms