explain.depesz.com

PostgreSQL's explain analyze made readable

Result: dMer : tpch8

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

Limit (cost=149,419.61..149,419.63 rows=1 width=40) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Gather Motion 16:1 (slice8; segments: 16) (cost=149,419.61..149,419.63 rows=1 width=40) (actual rows= loops=)

  • Merge Key: partial_aggregation.unnamed_attr_1
3. 0.000 0.000 ↓ 0.0

Limit (cost=149,419.61..149,419.61 rows=1 width=40) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Sort (cost=149,419.61..149,421.35 rows=44 width=40) (actual rows= loops=)

  • Sort Key (Limit): partial_aggregation.unnamed_attr_1
5. 0.000 0.000 ↓ 0.0

HashAggregate (cost=149,374.57..149,386.75 rows=44 width=40) (actual rows= loops=)

  • Group By: "?column1?
6. 0.000 0.000 ↓ 0.0

Redistribute Motion 16:16 (slice7; segments: 16) (cost=149,336.29..149,362.39 rows=44 width=72) (actual rows= loops=)

  • Hash Key: unnamed_attr_1
7. 0.000 0.000 ↓ 0.0

HashAggregate (cost=149,336.29..149,348.47 rows=44 width=72) (actual rows= loops=)

  • Group By: date_part('year'::text, orders.o_orderdate::timestamp without time zone)
8. 0.000 0.000 ↓ 0.0

Hash Join (cost=117,801.85..149,319.34 rows=142 width=46) (actual rows= loops=)

  • Hash Cond: supplier.s_nationkey = n2.n_nationkey
9. 0.000 0.000 ↓ 0.0

Hash Join (cost=117,776.35..149,163.90 rows=142 width=28) (actual rows= loops=)

  • Hash Cond: lineitem.l_suppkey = supplier.s_suppkey
10. 0.000 0.000 ↓ 0.0

Redistribute Motion 16:16 (slice5; segments: 16) (cost=117,487.35..148,840.98 rows=142 width=28) (actual rows= loops=)

  • Hash Key: lineitem.l_suppkey
11. 0.000 0.000 ↓ 0.0

Hash Join (cost=117,487.35..148,795.64 rows=142 width=28) (actual rows= loops=)

  • Hash Cond: customer.c_nationkey = n1.n_nationkey
12. 0.000 0.000 ↓ 0.0

Hash Join (cost=117,463.51..148,630.09 rows=709 width=36) (actual rows= loops=)

  • Hash Cond: orders.o_custkey = customer.c_custkey
13. 0.000 0.000 ↓ 0.0

Redistribute Motion 16:16 (slice2; segments: 16) (cost=113,105.18..144,101.72 rows=709 width=36) (actual rows= loops=)

  • Hash Key: orders.o_custkey
14. 0.000 0.000 ↓ 0.0

Hash Join (cost=113,105.18..143,875.00 rows=709 width=36) (actual rows= loops=)

  • Hash Cond: orders.o_orderkey = lineitem.l_orderkey
15. 0.000 0.000 ↓ 0.0

Seq Scan on orders (cost=0.00..29,543.50 rows=27,116 width=20) (actual rows= loops=)

  • Filter: o_orderdate >= '1995-01-01'::date AND o_orderdate <= '1996-12-31'::date
16. 0.000 0.000 ↓ 0.0

Hash (cost=112,614.84..112,614.84 rows=2,452 width=32) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash Join (cost=4,039.59..112,614.84 rows=2,452 width=32) (actual rows= loops=)

  • Hash Cond: lineitem.l_partkey = part.p_partkey
18. 0.000 0.000 ↓ 0.0

Seq Scan on lineitem (cost=0.00..91,606.51 rows=375,185 width=40) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Hash (cost=3,778.21..3,778.21 rows=1,307 width=8) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Broadcast Motion 16:16 (slice1; segments: 16) (cost=0.00..3,778.21 rows=1,307 width=8) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Seq Scan on part (cost=0.00..3,556.03 rows=82 width=8) (actual rows= loops=)

  • Filter: p_type::text = 'SMALL PLATED BRASS'::text
22. 0.000 0.000 ↓ 0.0

Hash (cost=2,467.59..2,467.59 rows=9,454 width=16) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Seq Scan on customer (cost=0.00..2,467.59 rows=9,454 width=16) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Hash (cost=22.85..22.85 rows=6 width=8) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Broadcast Motion 16:16 (slice4; segments: 16) (cost=5.43..22.85 rows=6 width=8) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Hash Join (cost=5.43..22.00 rows=1 width=8) (actual rows= loops=)

  • Hash Cond: n1.n_regionkey = region.r_regionkey
27. 0.000 0.000 ↓ 0.0

Seq Scan on nation n1 (cost=0.00..16.25 rows=2 width=16) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash (cost=5.23..5.23 rows=2 width=8) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Broadcast Motion 16:16 (slice3; segments: 16) (cost=0.00..5.23 rows=2 width=8) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Seq Scan on region (cost=0.00..5.06 rows=1 width=8) (actual rows= loops=)

  • Filter: r_name = 'EUROPE'::bpchar
31. 0.000 0.000 ↓ 0.0

Hash (cost=164.00..164.00 rows=625 width=16) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Seq Scan on supplier (cost=0.00..164.00 rows=625 width=16) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Hash (cost=20.50..20.50 rows=25 width=34) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Broadcast Motion 16:16 (slice6; segments: 16) (cost=0.00..20.50 rows=25 width=34) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Seq Scan on nation n2 (cost=0.00..16.25 rows=2 width=34) (actual rows= loops=)