explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ZJB5 : price

Settings

Optimization(s) for this plan:

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

Redistribute Motion 64:64 (slice5; segments: 64) (cost=7,526.56..36,894.51 rows=12,153 width=27) (actual rows= loops=)

  • Rows out: Avg 6904.0 rows x 64 workers at destination. Max 6911 rows (seg3) with 5578 ms to first row, 5583 ms to end, start offset by 4026 ms.
2. 0.000 0.000 ↓ 0.0

Hash Join (cost=7,526.56..36,894.51 rows=12,153 width=27) (actual rows= loops=)

  • Hash Cond: z.price_ver_id = x.price_ver_id::numeric
  • Rows out: Avg 6904.0 rows x 64 workers. Max 7206 rows (seg3) with 5561 ms to first row, 5580 ms to end, start offset by 4026 ms.
  • Executor memory: 42K bytes avg, 42K bytes max (seg1).
  • Work_mem used: 42K bytes avg, 42K bytes max (seg1). Workfile: (0 spilling, 0 reused)
  • (seg3) Hash chain length 1.0 avg, 2 max, using 1065 of 131111 buckets.
3. 0.000 0.000 ↓ 0.0

Redistribute Motion 64:64 (slice1; segments: 64) (cost=0.00..16,502.40 rows=7,495 width=23) (actual rows= loops=)

  • Hash Key: z.price_ver_id
  • Rows out: Avg 7500.6 rows x 64 workers at destination. Max 7740 rows (seg3) with 0.073 ms to first row, 5.915 ms to end, start offset by 9587 ms.
4. 0.000 0.000 ↓ 0.0

Seq Scan on d_price z (cost=0.00..6,908.80 rows=7,495 width=23) (actual rows= loops=)

  • Rows out: Avg 7500.6 rows x 64 workers. Max 7513 rows (seg27) with 33 ms to first row, 52 ms to end, start offset by 4050 ms.
5. 0.000 0.000 ↓ 0.0

Hash (cost=6,685.13..6,685.13 rows=1,052 width=16) (actual rows= loops=)

  • Rows in: Avg 1051.8 rows x 64 workers. Max 1070 rows (seg1) with 5434 ms to end, start offset by 4153 ms.
6. 0.000 0.000 ↓ 0.0

Redistribute Motion 64:64 (slice4; segments: 64) (cost=2,181.72..6,685.13 rows=1,052 width=16) (actual rows= loops=)

  • Hash Key: x.price_ver_id::numeric
  • Rows out: Avg 1051.8 rows x 64 workers at destination. Max 1070 rows (seg1) with 5005 ms to first row, 5434 ms to end, start offset by 4153 ms.
7. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,181.72..5,338.85 rows=1,052 width=16) (actual rows= loops=)

  • Hash Cond: x.rate_plan_id = rate_plan.rate_plan_id
  • Rows out: Avg 1051.8 rows x 64 workers. Max 1181 rows (seg9) with 5174 ms to first row, 5176 ms to end, start offset by 3991 ms.
  • Executor memory: 22K bytes avg, 23K bytes max (seg5).
  • Work_mem used: 22K bytes avg, 23K bytes max (seg5). Workfile: (0 spilling, 0 reused)
  • (seg9) Hash chain length 1.0 avg, 1 max, using 689 of 262151 buckets.
8. 0.000 0.000 ↓ 0.0

Redistribute Motion 64:64 (slice2; segments: 64) (cost=0.00..2,147.42 rows=1,052 width=16) (actual rows= loops=)

  • Hash Key: x.rate_plan_id
  • Rows out: Avg 1051.8 rows x 64 workers at destination. Max 1181 rows (seg9) with 0.047 ms to first row, 0.683 ms to end, start offset by 9165 ms.
9. 0.000 0.000 ↓ 0.0

Seq Scan on d_price_ver x (cost=0.00..801.14 rows=1,052 width=16) (actual rows= loops=)

  • Rows out: Avg 1051.8 rows x 64 workers. Max 1061 rows (seg49) with 17 ms to end, start offset by 4016 ms.
10. 0.000 0.000 ↓ 0.0

Hash (cost=1,629.02..1,629.02 rows=691 width=8) (actual rows= loops=)

  • Rows in: Avg 690.9 rows x 64 workers. Max 720 rows (seg5) with 5068 ms to end, start offset by 4087 ms.
11. 0.000 0.000 ↓ 0.0

Redistribute Motion 64:64 (slice3; segments: 64) (cost=0.00..1,629.02 rows=691 width=8) (actual rows= loops=)

  • Hash Key: rate_plan.rate_plan_id
  • Rows out: Avg 690.9 rows x 64 workers at destination. Max 720 rows (seg5) with 0.030 ms to first row, 5067 ms to end, start offset by 4087 ms.
12. 0.000 0.000 ↓ 0.0

Seq Scan on rate_plan (cost=0.00..744.70 rows=691 width=8) (actual rows= loops=)

  • Filter: flag <> 'D'::bpchar
  • Rows out: Avg 690.9 rows x 64 workers. Max 703 rows (seg17) with 36 ms to first row, 37 ms to end, start offset by 5770 ms.