explain.depesz.com

PostgreSQL's explain analyze made readable

Result: JFvA

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

GroupAggregate (cost=334,480.84..338,650.79 rows=21,057 width=16) (actual rows= loops=)

  • Group Key: (((date_part('hour'::text, orders.creation_date) * '4'::double precision) + floor((date_part('minute'::text, orders.creation_date) / '15'::double precision))))
2. 0.000 0.000 ↓ 0.0

Sort (cost=334,480.84..335,695.35 rows=485,804 width=12) (actual rows= loops=)

  • Sort Key: (((date_part('hour'::text, orders.creation_date) * '4'::double precision) + floor((date_part('minute'::text, orders.creation_date) / '15'::double precision))))
3. 0.000 0.000 ↓ 0.0

Gather (cost=72,521.53..288,596.61 rows=485,804 width=12) (actual rows= loops=)

  • Workers Planned: 5
4. 0.000 0.000 ↓ 0.0

Hash Join (cost=71,521.53..233,186.57 rows=97,161 width=12) (actual rows= loops=)

  • Hash Cond: (order_items_2020_08.orderid = orders.orderid)
5. 0.000 0.000 ↓ 0.0

Append (cost=0.00..158,670.14 rows=111,817 width=4) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on order_items_2020_08 (cost=0.00..123,881.54 rows=73,249 width=4) (actual rows= loops=)

  • Filter: ((order_creation_date > '2020-08-09 00:00:00'::timestamp without time zone) AND ((promo_token)::text = 'UPSELL ITEM'::text))
7. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on order_items_2020_09 (cost=0.00..34,788.60 rows=38,568 width=4) (actual rows= loops=)

  • Filter: ((order_creation_date > '2020-08-09 00:00:00'::timestamp without time zone) AND ((promo_token)::text = 'UPSELL ITEM'::text))
8. 0.000 0.000 ↓ 0.0

Hash (cost=70,665.67..70,665.67 rows=68,469 width=12) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Append (cost=0.00..70,665.67 rows=68,469 width=12) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Seq Scan on orders (cost=0.00..415.00 rows=1 width=12) (actual rows= loops=)

  • Filter: ((creation_date > '2020-09-08'::date) AND ((sid)::text !~~ '%UpsellTask%'::text) AND (status = 101))
11. 0.000 0.000 ↓ 0.0

Index Scan using orders_2020_09_i_order_create on orders_2020_09 (cost=0.43..70,250.67 rows=68,468 width=12) (actual rows= loops=)

  • Index Cond: (creation_date > '2020-09-08'::date)
  • Filter: (((sid)::text !~~ '%UpsellTask%'::text) AND (status = 101))