explain.depesz.com

PostgreSQL's explain analyze made readable

Result: vIvf : price

Settings

Optimization(s) for this plan:

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

Gather Motion 64:1 (slice5; segments: 64) (cost=7,526.56..36,894.51 rows=777,757 width=27) (actual rows= loops=)

  • Rows out: 441854 rows at destination with 12870 ms to first row, 13013 ms to end, start offset by 2386 ms.
  • (slice0) Executor memory: 495K bytes.
  • (slice1) Executor memory: 808K bytes avg x 64 workers, 808K bytes max (seg0).
  • (slice2) Executor memory: 805K bytes avg x 64 workers, 805K bytes max (seg0).
  • (slice3) Executor memory: 805K bytes avg x 64 workers, 805K bytes max (seg0).
  • (slice4) Executor memory: 5153K bytes avg x 64 workers, 5153K bytes max (seg0). Work_mem: 23K bytes max.
  • (slice5) Executor memory: 2646K bytes avg x 64 workers, 2705K bytes max (seg11). Work_mem: 42K bytes max.
  • Memory used: 92160K bytes
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 8484 ms to first row, 8498 ms to end, start offset by 6779 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.043 ms to first row, 3.974 ms to end, start offset by 15263 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 690 ms to first row, 1160 ms to end, start offset by 3838 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 10246 ms to end, start offset by 5016 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 10242 ms to first row, 10245 ms to end, start offset by 5016 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 11881 ms to first row, 11885 ms to end, start offset by 3368 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.040 ms to first row, 0.801 ms to end, start offset by 15249 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 189 ms to first row, 190 ms to end, start offset by 2880 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 9845 ms to end, start offset by 5412 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.036 ms to first row, 9844 ms to end, start offset by 5412 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 996 ms to first row, 997 ms to end, start offset by 3907 ms.