explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 2Ypr : explain_test

Settings
# exclusive inclusive rows x rows loops node
1. 1.069 28.642 ↑ 1.0 1 1

Limit (cost=6,279.56..6,279.57 rows=1 width=481) (actual time=27.575..28.642 rows=1 loops=1)

2. 0.001 27.573 ↑ 1.0 1 1

Unique (cost=6,279.56..6,279.57 rows=1 width=481) (actual time=27.573..27.573 rows=1 loops=1)

3. 0.000 27.572 ↑ 1.0 1 1

Sort (cost=6,279.56..6,279.57 rows=1 width=481) (actual time=27.572..27.572 rows=1 loops=1)

  • Sort Key: orders_order.id
  • Sort Method: quicksort Memory: 26kB
4. 3.879 28.610 ↓ 2.0 2 1

Gather (cost=1,038.53..6,279.55 rows=1 width=481) (actual time=22.570..28.610 rows=2 loops=1)

  • Workers Planned: 1
  • Workers Launched: 1
5. 0.085 24.731 ↑ 1.0 1 2 / 2

Nested Loop (cost=38.53..5,279.45 rows=1 width=481) (actual time=22.347..24.731 rows=1 loops=2)

6. 5.870 10.944 ↑ 1.3 652 2 / 2

Parallel Bitmap Heap Scan on orders_order (cost=38.09..2,314.84 rows=858 width=477) (actual time=8.485..10.944 rows=652 loops=2)

  • Recheck Cond: (((picking_status)::text = ANY ('{PICKING_READY_TO_GO,PICKING_SHOPPING,PICKING_CHECKOUT,PICKING_WAITING_HANDOFF,PICKING_ASSIGNED,PICKING_ACCEPTED}'::text[])) OR ((delivery_status)::text = ANY ('{DELIVERY_WAITING_HANDOFF,DELIVERY_ON_POOL,DELIVERY_READY_TO_GO,DELIVERY_ON_THE_WAY,DELIVERY_ACCEPTED,DELIVERY_ON_DESTINATION,DELIVERY_ASSIGNED}'::text[])))
  • Filter: ((status)::text <> ALL ('{CANCELED,CANCELED_BY_CM,PENDING,COMPLETE,CANCELED_BY_USER}'::text[]))
  • Rows Removed by Filter: 2
  • Heap Blocks: exact=590
7. 0.000 5.074 ↓ 0.0 0 1 / 2

BitmapOr (cost=38.09..38.09 rows=1,532 width=0) (actual time=10.148..10.148 rows=0 loops=1)

8. 3.054 3.054 ↓ 5.0 3,171 1 / 2

Bitmap Index Scan on orders_order_picking_status_54af467632d2bb47_like (cost=0.00..17.12 rows=638 width=0) (actual time=6.107..6.107 rows=3,171 loops=1)

  • Index Cond: ((picking_status)::text = ANY ('{PICKING_READY_TO_GO,PICKING_SHOPPING,PICKING_CHECKOUT,PICKING_WAITING_HANDOFF,PICKING_ASSIGNED,PICKING_ACCEPTED}'::text[]))
9. 2.020 2.020 ↓ 2.4 2,144 1 / 2

Bitmap Index Scan on orders_order_delivery_status_3ffdfe37710878f7_like (cost=0.00..20.25 rows=893 width=0) (actual time=4.040..4.040 rows=2,144 loops=1)

  • Index Cond: ((delivery_status)::text = ANY ('{DELIVERY_WAITING_HANDOFF,DELIVERY_ON_POOL,DELIVERY_READY_TO_GO,DELIVERY_ON_THE_WAY,DELIVERY_ACCEPTED,DELIVERY_ON_DESTINATION,DELIVERY_ASSIGNED}'::text[]))
10. 13.703 13.703 ↓ 0.0 0 1,305 / 2

Index Scan using orders_orde_order_i_40724f_idx on orders_ordershopper (cost=0.43..3.45 rows=1 width=12) (actual time=0.021..0.021 rows=0 loops=1,305)

  • Index Cond: ((order_id = orders_order.id) AND (shopper_id = 379,994))
  • Filter: ((((type)::text = 'PICKING'::text) OR ((type)::text = 'DELIVERY'::text)) AND ((((type)::text = 'PICKING'::text) AND ((orders_order.picking_status)::text = ANY ('{PICKING_READY_TO_GO,PICKING_SHOPPING,PICKING_CHECKOUT,PICKING_WAITING_HANDOFF,PICKING_ASSIGNED,PICKING_ACCEPTED}'::text[]))) OR (((type)::text = 'DELIVERY'::text) AND ((orders_order.delivery_status)::text = ANY ('{DELIVERY_WAITING_HANDOFF,DELIVERY_ON_POOL,DELIVERY_READY_TO_GO,DELIVERY_ON_THE_WAY,DELIVERY_ACCEPTED,DELIVERY_ON_DESTINATION,DELIVERY_ASSIGNED}'::text[])))))
Planning time : 35.122 ms
Execution time : 28.845 ms