explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Omlm

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

Unique (cost=3,521.25..3,521.33 rows=1 width=143) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=3,521.25..3,521.25 rows=1 width=143) (actual rows= loops=)

  • Sort Key: geruest3_.geruest, walzensatz2_.mittlererdurchmesser, walzensatz2_.nr, kalibergru1_.gruppe, geruest3_.bez, kaliberbez10_.bezeichnung, kalibergru1_.laufleistungist, kalibergru5_.vglaufleistungsollguss, kalibergru5_.vglaufleistungsollhguss, (...)
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,255.61..3,521.24 rows=1 width=143) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,255.61..3,516.28 rows=1 width=150) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,255.61..3,511.33 rows=1 width=152) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,255.61..3,503.88 rows=1 width=166) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,255.61..3,496.51 rows=1 width=165) (actual rows= loops=)

  • Join Filter: (gerueste18_.geruest = zuordnungs7_.geruest)
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,251.21..3,298.93 rows=1 width=165) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,251.21..3,276.52 rows=3 width=154) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,251.21..3,252.16 rows=3 width=155) (actual rows= loops=)

  • Hash Cond: (walzehisto4_.walzenzeichnung = gerueste18_.walzenzeichnung)
11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,111.43..3,112.31 rows=2 width=134) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,111.43..3,093.75 rows=1 width=120) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2,111.43..3,042.01 rows=7 width=123) (actual rows= loops=)

  • Join Filter: (kalibergru1_.kalibergruppe = kalibergru5_.id)
14. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,111.43..2,989.21 rows=7 width=77) (actual rows= loops=)

  • Hash Cond: (kalibergru9_.kaliberbezeichnung = kaliberbez10_.id)
15. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,017.40..2,894.94 rows=33 width=63) (actual rows= loops=)

  • Hash Cond: (kalibergru1_.walzensatz = walzensatz2_.id)
16. 0.000 0.000 ↓ 0.0

Hash Join (cost=1,713.44..2,589.43 rows=325 width=35) (actual rows= loops=)

  • Hash Cond: (kalibergru1_.kalibergruppe = kalibergru9_.id)
17. 0.000 0.000 ↓ 0.0

Seq Scan on kalibergruppews kalibergru1_ (cost=0.00..869.90 rows=325 width=22) (actual rows= loops=)

  • Filter: (((freigabe)::text = 'F'::text) AND (((status)::text = '-'::text) OR ((status)::text = 'A'::text) OR ((status)::text = 'E'::text) OR ((status)::text = (...)
18. 0.000 0.000 ↓ 0.0

Hash (cost=1,152.64..1,152.64 rows=44,864 width=13) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Seq Scan on kalibergruppe kalibergru9_ (cost=0.00..1,152.64 rows=44,864 width=13) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Hash (cost=291.13..291.13 rows=1,026 width=28) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Seq Scan on walzensatz walzensatz2_ (cost=0.00..291.13 rows=1,026 width=28) (actual rows= loops=)

  • Filter: (((anstrasse)::text <> 'N'::text) AND ((nr)::text ~~ '%'::text) AND ((gruppe)::text = ''::text))
22. 0.000 0.000 ↓ 0.0

Hash (cost=66.79..66.79 rows=2,179 width=14) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Seq Scan on kaliberbezeichnung kaliberbez10_ (cost=0.00..66.79 rows=2,179 width=14) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Index Scan using kalibergruppe_pkey on kalibergruppe kalibergru5_ (cost=0.00..7.53 rows=1 width=65) (actual rows= loops=)

  • Index Cond: (id = kalibergru9_.id)
25. 0.000 0.000 ↓ 0.0

Index Scan using kaliberbezeichnung_pkey on kaliberbezeichnung kaliberbez6_ (cost=0.00..7.38 rows=1 width=11) (actual rows= loops=)

  • Index Cond: (id = kalibergru5_.kaliberbezeichnung)
26. 0.000 0.000 ↓ 0.0

Index Scan using wh_walzensatz_aktuell on walzehistorie walzehisto4_ (cost=0.00..18.50 rows=5 width=26) (actual rows= loops=)

  • Index Cond: ((walzensatz = walzensatz2_.id) AND ((aktuell)::text = 'T'::text))
27. 0.000 0.000 ↓ 0.0

Hash (cost=100.36..100.36 rows=3,154 width=21) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash Join (cost=5.45..100.36 rows=3,154 width=21) (actual rows= loops=)

  • Hash Cond: (gerueste18_.geruest = geruest19_.id)
29. 0.000 0.000 ↓ 0.0

Seq Scan on geruest_walzenzeichnung gerueste18_ (cost=0.00..51.54 rows=3,154 width=14) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Hash (cost=4.09..4.09 rows=109 width=7) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Seq Scan on geruest geruest19_ (cost=0.00..4.09 rows=109 width=7) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Index Scan using bearbeitungsschritt_pkey on bearbeitungsschritt bearbeitun14_ (cost=0.00..8.11 rows=1 width=11) (actual rows= loops=)

  • Index Cond: (id = walzehisto4_.bearbschritt)
33. 0.000 0.000 ↓ 0.0

Index Scan using walze_id_einbauseite_uw on walze walze11_ (cost=0.00..7.46 rows=1 width=25) (actual rows= loops=)

  • Index Cond: (id = walzehisto4_.walze)
34. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on zuordnungsmatrix zuordnungs7_ (cost=4.40..196.78 rows=64 width=21) (actual rows= loops=)

  • Recheck Cond: (kaliberbezeichnung = kalibergru9_.kaliberbezeichnung)
35. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on i106_idx (cost=0.00..4.38 rows=64 width=0) (actual rows= loops=)

  • Index Cond: (kaliberbezeichnung = kalibergru9_.kaliberbezeichnung)
36. 0.000 0.000 ↓ 0.0

Index Scan using produkt_pkey on produkt produkt8_ (cost=0.00..7.36 rows=1 width=15) (actual rows= loops=)

  • Index Cond: (id = zuordnungs7_.produkt)
  • Filter: (((produktgruppe)::text ~~ '%'::text) AND ((anstich)::text ~~ '%'::text) AND ((kaltmass)::text ~~ '%'::text) AND (nr >= 0) AND (nr <= 9999) AND ((str)::text = '32'::text) AND (((abmavon >= 0.0) AND (abmavon <= (...)
37. 0.000 0.000 ↓ 0.0

Index Scan using walzenzeichnung_pkey on walzenzeichnung walzenzeic0_ (cost=0.00..7.44 rows=1 width=7) (actual rows= loops=)

  • Index Cond: (id = gerueste18_.walzenzeichnung)
  • Filter: ((str)::text = '32'::text)
38. 0.000 0.000 ↓ 0.0

Index Scan using schrottgruppe_pkey on schrottgruppe schrottgru13_ (cost=0.00..4.94 rows=1 width=10) (actual rows= loops=)

  • Index Cond: (id = walze11_.schrottgruppe)
39. 0.000 0.000 ↓ 0.0

Index Scan using geruest_pkey on geruest geruest3_ (cost=0.00..4.95 rows=1 width=14) (actual rows= loops=)

  • Index Cond: (id = gerueste18_.geruest)
  • Filter: ((geruest >= 0) AND (geruest <= 99) AND ((unterdrueckt)::text = 'N'::text))