explain.depesz.com

PostgreSQL's explain analyze made readable

Result: gUDX

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

GroupAggregate (cost=3,854,464.24..3,857,482.36 rows=38,915 width=213) (actual rows= loops=)

  • Group Key: s.branch_name, s.branch_code
2. 0.000 0.000 ↓ 0.0

Sort (cost=3,854,464.24..3,854,561.63 rows=38,957 width=58) (actual rows= loops=)

  • Sort Key: s.branch_name, s.branch_code
3. 0.000 0.000 ↓ 0.0

Subquery Scan on s (cost=3,850,325.14..3,851,493.85 rows=38,957 width=58) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

WindowAgg (cost=3,850,325.14..3,851,104.28 rows=38,957 width=95) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Sort (cost=3,850,325.14..3,850,422.53 rows=38,957 width=87) (actual rows= loops=)

  • Sort Key: d.branch_code, g.link_guid
6. 0.000 0.000 ↓ 0.0

Gather (cost=31,299.53..3,847,354.74 rows=38,957 width=87) (actual rows= loops=)

  • Workers Planned: 2
7. 0.000 0.000 ↓ 0.0

Hash Join (cost=30,299.53..3,842,459.04 rows=16,232 width=87) (actual rows= loops=)

  • Hash Cond: ((d.branch_code)::text = (p.branch_code)::text)
8. 0.000 0.000 ↓ 0.0

Parallel Hash Join (cost=30,233.89..3,842,350.60 rows=16,232 width=70) (actual rows= loops=)

  • Hash Cond: ((g.link_guid)::text = (d.guid)::text)
9. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on transaction_line_items g (cost=0.00..3,693,354.07 rows=45,242,907 width=53) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Parallel Hash (cost=30,115.38..30,115.38 rows=9,481 width=54) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Parallel Index Scan using tm_datebranchtype on transaction_master d (cost=0.56..30,115.38 rows=9,481 width=54) (actual rows= loops=)

  • Index Cond: ((sale_date >= '2020-02-05'::date) AND (sale_date <= '2020-02-05'::date))
12. 0.000 0.000 ↓ 0.0

Hash (cost=54.17..54.17 rows=917 width=21) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on branch_details p (cost=0.00..54.17 rows=917 width=21) (actual rows= loops=)