explain.depesz.com

PostgreSQL's explain analyze made readable

Result: OA2S : f_datsaved_tz_ge_100

Settings
# exclusive inclusive rows x rows loops node
1. 24.933 8,912.891 ↓ 2.4 606,694 1

Append (cost=0.43..6,325,737.87 rows=252,578 width=72) (actual time=1,364.769..8,912.891 rows=606,694 loops=1)

  • Functions: 279
  • Options: Inlining true, Optimization true, Expressions true, Deforming true
  • Timing: Generation 24.184 ms, Inlining 128.944 ms, Optimization 1324.620 ms, Emission 700.565 ms, Total 2178.313 ms
2. 1,201.847 8,360.644 ↓ 364.6 606,694 1

Result (cost=0.43..2,094,082.46 rows=1,664 width=72) (actual time=1,364.768..8,360.644 rows=606,694 loops=1)

  • Output: b.idber, d.idvu, d.idmonat, d.idaufroll, d.anzahl, d.preis, d.idprod, d.abgr, d.mdiff, d.idtz1v, d.idtz2v, d.idpsv, d.iduzv, d.tz, d.status
  • One-Time Filter: $2
3. 32.601 7,158.797 ↓ 364.6 606,694 1

Nested Loop (cost=0.43..2,094,082.46 rows=1,664 width=72) (actual time=198.847..7,158.797 rows=606,694 loops=1)

  • Output: d.idvu, d.idmonat, d.idaufroll, d.anzahl, d.preis, d.idprod, d.abgr, d.mdiff, d.idtz1v, d.idtz2v, d.idpsv, d.iduzv, d.tz, d.status, b.idber
4. 0.446 0.446 ↑ 1.0 15 1

Function Scan on eav.f_abgr_monat b (cost=0.00..0.15 rows=15 width=10) (actual time=0.432..0.446 rows=15 loops=1)

  • Output: b.idber, b.idmonat, b.abgr_idmonat, b.abgr_idaufroll
  • Function Call: eav.f_abgr_monat($1)
5. 24.386 7,125.750 ↑ 2.0 40,446 15

Append (cost=0.43..138,812.72 rows=79,277 width=68) (actual time=53.472..475.050 rows=40,446 loops=15)

6. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_14_expr_idmonat_idaufroll_idx on eav.datsaved_14 d_1 (cost=0.43..765.69 rows=401 width=40) (never executed)

  • Output: d_1.idvu, d_1.idmonat, d_1.idaufroll, d_1.anzahl, d_1.preis, d_1.idprod, d_1.abgr, d_1.mdiff, d_1.idtz1v, d_1.idtz2v, d_1.idpsv, d_1.iduzv, d_1.tz, d_1.status
  • Index Cond: (((d_1.idmonat + d_1.mdiff) = b.idmonat) AND (d_1.idmonat = b.abgr_idmonat) AND (d_1.idaufroll = b.abgr_idaufroll))
  • Filter: (d_1.tz >= 100)
7. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_17_expr_idmonat_idaufroll_idx on eav.datsaved_17 d_2 (cost=0.43..1,365.27 rows=764 width=40) (never executed)

  • Output: d_2.idvu, d_2.idmonat, d_2.idaufroll, d_2.anzahl, d_2.preis, d_2.idprod, d_2.abgr, d_2.mdiff, d_2.idtz1v, d_2.idtz2v, d_2.idpsv, d_2.iduzv, d_2.tz, d_2.status
  • Index Cond: (((d_2.idmonat + d_2.mdiff) = b.idmonat) AND (d_2.idmonat = b.abgr_idmonat) AND (d_2.idaufroll = b.abgr_idaufroll))
  • Filter: (d_2.tz >= 100)
8. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_20_expr_idmonat_idaufroll_idx on eav.datsaved_20 d_3 (cost=0.43..2,394.49 rows=1,380 width=40) (never executed)

  • Output: d_3.idvu, d_3.idmonat, d_3.idaufroll, d_3.anzahl, d_3.preis, d_3.idprod, d_3.abgr, d_3.mdiff, d_3.idtz1v, d_3.idtz2v, d_3.idpsv, d_3.iduzv, d_3.tz, d_3.status
  • Index Cond: (((d_3.idmonat + d_3.mdiff) = b.idmonat) AND (d_3.idmonat = b.abgr_idmonat) AND (d_3.idaufroll = b.abgr_idaufroll))
  • Filter: (d_3.tz >= 100)
9. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_23_expr_idmonat_idaufroll_idx on eav.datsaved_23 d_4 (cost=0.43..2,882.85 rows=1,654 width=42) (never executed)

  • Output: d_4.idvu, d_4.idmonat, d_4.idaufroll, d_4.anzahl, d_4.preis, d_4.idprod, d_4.abgr, d_4.mdiff, d_4.idtz1v, d_4.idtz2v, d_4.idpsv, d_4.iduzv, d_4.tz, d_4.status
  • Index Cond: (((d_4.idmonat + d_4.mdiff) = b.idmonat) AND (d_4.idmonat = b.abgr_idmonat) AND (d_4.idaufroll = b.abgr_idaufroll))
  • Filter: (d_4.tz >= 100)
10. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_24_expr_idmonat_idaufroll_idx on eav.datsaved_24 d_5 (cost=0.43..7,549.27 rows=5,838 width=43) (never executed)

  • Output: d_5.idvu, d_5.idmonat, d_5.idaufroll, d_5.anzahl, d_5.preis, d_5.idprod, d_5.abgr, d_5.mdiff, d_5.idtz1v, d_5.idtz2v, d_5.idpsv, d_5.iduzv, d_5.tz, d_5.status
  • Index Cond: (((d_5.idmonat + d_5.mdiff) = b.idmonat) AND (d_5.idmonat = b.abgr_idmonat) AND (d_5.idaufroll = b.abgr_idaufroll))
  • Filter: (d_5.tz >= 100)
11. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_26_expr_idmonat_idaufroll_idx on eav.datsaved_26 d_6 (cost=0.43..5,964.67 rows=3,564 width=48) (never executed)

  • Output: d_6.idvu, d_6.idmonat, d_6.idaufroll, d_6.anzahl, d_6.preis, d_6.idprod, d_6.abgr, d_6.mdiff, d_6.idtz1v, d_6.idtz2v, d_6.idpsv, d_6.iduzv, d_6.tz, d_6.status
  • Index Cond: (((d_6.idmonat + d_6.mdiff) = b.idmonat) AND (d_6.idmonat = b.abgr_idmonat) AND (d_6.idaufroll = b.abgr_idaufroll))
  • Filter: (d_6.tz >= 100)
12. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_27_expr_idmonat_idaufroll_idx on eav.datsaved_27 d_7 (cost=0.43..11,775.30 rows=7,867 width=87) (never executed)

  • Output: d_7.idvu, d_7.idmonat, d_7.idaufroll, d_7.anzahl, d_7.preis, d_7.idprod, d_7.abgr, d_7.mdiff, d_7.idtz1v, d_7.idtz2v, d_7.idpsv, d_7.iduzv, d_7.tz, d_7.status
  • Index Cond: (((d_7.idmonat + d_7.mdiff) = b.idmonat) AND (d_7.idmonat = b.abgr_idmonat) AND (d_7.idaufroll = b.abgr_idaufroll))
  • Filter: (d_7.tz >= 100)
13. 0.000 0.000 ↓ 0.0 0

Index Scan using datsaved_29_expr_idmonat_idaufroll_idx on eav.datsaved_29 d_8 (cost=0.43..8,947.43 rows=5,091 width=118) (never executed)

  • Output: d_8.idvu, d_8.idmonat, d_8.idaufroll, d_8.anzahl, d_8.preis, d_8.idprod, d_8.abgr, d_8.mdiff, d_8.idtz1v, d_8.idtz2v, d_8.idpsv, d_8.iduzv, d_8.tz, d_8.status
  • Index Cond: (((d_8.idmonat + d_8.mdiff) = b.idmonat) AND (d_8.idmonat = b.abgr_idmonat) AND (d_8.idaufroll = b.abgr_idaufroll))
  • Filter: (d_8.tz >= 100)
14. 14.654 14.654 ↓ 0.0 0 1

Index Scan using datsaved_30_expr_idmonat_idaufroll_idx on eav.datsaved_30 d_9 (cost=0.43..14,549.05 rows=9,682 width=91) (actual time=14.654..14.654 rows=0 loops=1)

  • Output: d_9.idvu, d_9.idmonat, d_9.idaufroll, d_9.anzahl, d_9.preis, d_9.idprod, d_9.abgr, d_9.mdiff, d_9.idtz1v, d_9.idtz2v, d_9.idpsv, d_9.iduzv, d_9.tz, d_9.status
  • Index Cond: (((d_9.idmonat + d_9.mdiff) = b.idmonat) AND (d_9.idmonat = b.abgr_idmonat) AND (d_9.idaufroll = b.abgr_idaufroll))
  • Filter: (d_9.tz >= 100)
15. 6,333.384 6,333.384 ↑ 2.7 5,254 12

Index Scan using datsaved_32_expr_idmonat_idaufroll_idx on eav.datsaved_32 d_10 (cost=0.43..34,384.83 rows=14,317 width=98) (actual time=34.992..527.782 rows=5,254 loops=12)

  • Output: d_10.idvu, d_10.idmonat, d_10.idaufroll, d_10.anzahl, d_10.preis, d_10.idprod, d_10.abgr, d_10.mdiff, d_10.idtz1v, d_10.idtz2v, d_10.idpsv, d_10.iduzv, d_10.tz, d_10.status
  • Index Cond: (((d_10.idmonat + d_10.mdiff) = b.idmonat) AND (d_10.idmonat = b.abgr_idmonat) AND (d_10.idaufroll = b.abgr_idaufroll))
  • Filter: (d_10.tz >= 100)
16. 387.090 753.326 ↓ 9.5 271,825 2

Bitmap Heap Scan on eav.datsaved_33 d_11 (cost=550.34..47,837.48 rows=28,719 width=92) (actual time=183.717..376.663 rows=271,825 loops=2)

  • Output: d_11.idvu, d_11.idmonat, d_11.idaufroll, d_11.anzahl, d_11.preis, d_11.idprod, d_11.abgr, d_11.mdiff, d_11.idtz1v, d_11.idtz2v, d_11.idpsv, d_11.iduzv, d_11.tz, d_11.status
  • Recheck Cond: (((d_11.idmonat + d_11.mdiff) = b.idmonat) AND (d_11.idmonat = b.abgr_idmonat) AND (d_11.idaufroll = b.abgr_idaufroll))
  • Filter: (d_11.tz >= 100)
  • Rows Removed by Filter: 253
  • Heap Blocks: exact=11,464
17. 366.236 366.236 ↓ 9.5 272,078 2

Bitmap Index Scan on datsaved_33_expr_idmonat_idaufroll_idx (cost=0.00..543.16 rows=28,741 width=0) (actual time=183.118..183.118 rows=272,078 loops=2)

  • Index Cond: (((d_11.idmonat + d_11.mdiff) = b.idmonat) AND (d_11.idmonat = b.abgr_idmonat) AND (d_11.idaufroll = b.abgr_idaufroll))
18. 196.680 527.314 ↓ 0.0 0 1

Gather (cost=1,032.56..4,227,866.74 rows=250,914 width=72) (actual time=522.839..527.314 rows=0 loops=1)

  • Output: ber.id, d_12.idvu, d_12.idmonat, d_12.idaufroll, d_12.anzahl, d_12.preis, d_12.idprod, d_12.abgr, d_12.mdiff, d_12.idtz1v, d_12.idtz2v, d_12.idpsv, d_12.iduzv, d_12.tz, d_12.status
  • Workers Planned: 2
  • Workers Launched: 2
19. 330.634 330.634 ↓ 0.0 0 3 / 3

Result (cost=32.56..4,201,775.34 rows=104,548 width=72) (actual time=330.629..330.634 rows=0 loops=3)

  • Output: ber.id, d_12.idvu, d_12.idmonat, d_12.idaufroll, d_12.anzahl, d_12.preis, d_12.idprod, d_12.abgr, d_12.mdiff, d_12.idtz1v, d_12.idtz2v, d_12.idpsv, d_12.iduzv, d_12.tz, d_12.status
  • One-Time Filter: (NOT $2)
  • Worker 0: actual time=493.370..493.374 rows=0 loops=1
  • JIT:
  • Functions: 58
  • Options: Inlining true, Optimization true, Expressions true, Deforming true
  • Timing: Generation 5.432 ms, Inlining 42.122 ms, Optimization 298.492 ms, Emission 152.006 ms, Total 498.052 ms
  • Worker 1: actual time=498.501..498.506 rows=0 loops=1
  • JIT:
  • Functions: 58
  • Options: Inlining true, Optimization true, Expressions true, Deforming true
  • Timing: Generation 5.476 ms, Inlining 43.411 ms, Optimization 300.238 ms, Emission 153.992 ms, Total 503.116 ms
20. 0.000 0.000 ↓ 0.0 0 / 3

Hash Join (cost=32.56..4,201,775.34 rows=104,548 width=72) (never executed)

  • Output: d_12.idvu, d_12.idmonat, d_12.idaufroll, d_12.anzahl, d_12.preis, d_12.idprod, d_12.abgr, d_12.mdiff, d_12.idtz1v, d_12.idtz2v, d_12.idpsv, d_12.iduzv, d_12.tz, d_12.status, ber.id
  • Hash Cond: ((d_12.idmonat = ber.idmonat) AND (d_12.idaufroll = ber.idaufroll))
21. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Append (cost=0.00..3,556,311.84 rows=42,959,031 width=68) (never executed)

22. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_29 d_20 (cost=0.00..598,160.84 rows=5,523,960 width=118) (never executed)

  • Output: d_20.idvu, d_20.idmonat, d_20.idaufroll, d_20.anzahl, d_20.preis, d_20.idprod, d_20.abgr, d_20.mdiff, d_20.idtz1v, d_20.idtz2v, d_20.idpsv, d_20.iduzv, d_20.tz, d_20.status
  • Filter: (d_20.tz >= 100)
23. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_32 d_22 (cost=0.00..514,595.43 rows=5,345,165 width=98) (never executed)

  • Output: d_22.idvu, d_22.idmonat, d_22.idaufroll, d_22.anzahl, d_22.preis, d_22.idprod, d_22.abgr, d_22.mdiff, d_22.idtz1v, d_22.idtz2v, d_22.idpsv, d_22.iduzv, d_22.tz, d_22.status
  • Filter: (d_22.tz >= 100)
24. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_26 d_18 (cost=0.00..331,543.34 rows=5,131,505 width=48) (never executed)

  • Output: d_18.idvu, d_18.idmonat, d_18.idaufroll, d_18.anzahl, d_18.preis, d_18.idprod, d_18.abgr, d_18.mdiff, d_18.idtz1v, d_18.idtz2v, d_18.idpsv, d_18.iduzv, d_18.tz, d_18.status
  • Filter: (d_18.tz >= 100)
25. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_30 d_21 (cost=0.00..322,837.79 rows=3,485,618 width=91) (never executed)

  • Output: d_21.idvu, d_21.idmonat, d_21.idaufroll, d_21.anzahl, d_21.preis, d_21.idprod, d_21.abgr, d_21.mdiff, d_21.idtz1v, d_21.idtz2v, d_21.idpsv, d_21.iduzv, d_21.tz, d_21.status
  • Filter: (d_21.tz >= 100)
26. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_23 d_16 (cost=0.00..296,018.73 rows=4,890,935 width=42) (never executed)

  • Output: d_16.idvu, d_16.idmonat, d_16.idaufroll, d_16.anzahl, d_16.preis, d_16.idprod, d_16.abgr, d_16.mdiff, d_16.idtz1v, d_16.idtz2v, d_16.idpsv, d_16.iduzv, d_16.tz, d_16.status
  • Filter: (d_16.tz >= 100)
27. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_17 d_14 (cost=0.00..286,499.69 rows=4,841,248 width=40) (never executed)

  • Output: d_14.idvu, d_14.idmonat, d_14.idaufroll, d_14.anzahl, d_14.preis, d_14.idprod, d_14.abgr, d_14.mdiff, d_14.idtz1v, d_14.idtz2v, d_14.idpsv, d_14.iduzv, d_14.tz, d_14.status
  • Filter: (d_14.tz >= 100)
28. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_27 d_19 (cost=0.00..267,714.29 rows=3,032,151 width=87) (never executed)

  • Output: d_19.idvu, d_19.idmonat, d_19.idaufroll, d_19.anzahl, d_19.preis, d_19.idprod, d_19.abgr, d_19.mdiff, d_19.idtz1v, d_19.idtz2v, d_19.idpsv, d_19.iduzv, d_19.tz, d_19.status
  • Filter: (d_19.tz >= 100)
29. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_20 d_15 (cost=0.00..231,039.20 rows=3,910,915 width=40) (never executed)

  • Output: d_15.idvu, d_15.idmonat, d_15.idaufroll, d_15.anzahl, d_15.preis, d_15.idprod, d_15.abgr, d_15.mdiff, d_15.idtz1v, d_15.idtz2v, d_15.idpsv, d_15.iduzv, d_15.tz, d_15.status
  • Filter: (d_15.tz >= 100)
30. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_33 d_23 (cost=0.00..190,101.21 rows=1,914,602 width=92) (never executed)

  • Output: d_23.idvu, d_23.idmonat, d_23.idaufroll, d_23.anzahl, d_23.preis, d_23.idprod, d_23.abgr, d_23.mdiff, d_23.idtz1v, d_23.idtz2v, d_23.idpsv, d_23.iduzv, d_23.tz, d_23.status
  • Filter: (d_23.tz >= 100)
31. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_14 d_13 (cost=0.00..174,436.71 rows=2,781,332 width=40) (never executed)

  • Output: d_13.idvu, d_13.idmonat, d_13.idaufroll, d_13.anzahl, d_13.preis, d_13.idprod, d_13.abgr, d_13.mdiff, d_13.idtz1v, d_13.idtz2v, d_13.idpsv, d_13.iduzv, d_13.tz, d_13.status
  • Filter: (d_13.tz >= 100)
32. 0.000 0.000 ↓ 0.0 0 / 3

Parallel Seq Scan on eav.datsaved_24 d_17 (cost=0.00..128,569.45 rows=2,101,600 width=43) (never executed)

  • Output: d_17.idvu, d_17.idmonat, d_17.idaufroll, d_17.anzahl, d_17.preis, d_17.idprod, d_17.abgr, d_17.mdiff, d_17.idtz1v, d_17.idtz2v, d_17.idpsv, d_17.iduzv, d_17.tz, d_17.status
  • Filter: (d_17.tz >= 100)
33. 0.000 0.000 ↓ 0.0 0 / 3

Hash (cost=32.41..32.41 rows=10 width=8) (never executed)

  • Output: ber.id, ber.idmonat, ber.idaufroll
34. 0.000 0.000 ↓ 0.0 0 / 3

Seq Scan on eav.ber (cost=0.00..32.41 rows=10 width=8) (never executed)

  • Output: ber.id, ber.idmonat, ber.idaufroll
  • Filter: (ber.id = ANY ($1))