explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 75v1 : Optimization for: plan #e8vy

Settings

Optimization path:

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

Limit (cost=9,659.79..9,659.80 rows=1 width=776) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=9,659.79..9,659.80 rows=1 width=776) (actual rows= loops=)

  • Sort Key: "Extent1".produktid
3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,196.20..9,659.78 rows=1 width=776) (actual rows= loops=)

  • Join Filter: ("Extent1".alternate_grupacenowaid = "Extent21".grupacenowaid)
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,196.20..9,657.71 rows=1 width=763) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,650.34 rows=1 width=755) (actual rows= loops=)

  • Join Filter: ("Extent1".grupacenowaid = "Extent18".grupacenowaid)
6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,648.29 rows=1 width=738) (actual rows= loops=)

  • Join Filter: ("Extent1"."materialWewnetrznyID" = "Extent17".materialid)
7. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,643.55 rows=1 width=717) (actual rows= loops=)

  • Join Filter: ("Extent1"."materialZewnetrznyID" = "Extent16".materialid)
8. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,638.82 rows=1 width=696) (actual rows= loops=)

  • Join Filter: ("Extent1".grupaprogsuszeniaid = "Extent15".grupyprogramowid)
9. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,637.51 rows=1 width=664) (actual rows= loops=)

  • Join Filter: ("Extent1".grupaprogsterid = "Extent14".grupyprogramowid)
10. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,636.19 rows=1 width=632) (actual rows= loops=)

  • Join Filter: ("Extent1".grupaprogdezid = "Extent13".grupyprogramowid)
11. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,634.88 rows=1 width=600) (actual rows= loops=)

  • Join Filter: ("Extent1".grupaprogdezwstid = "Extent12".grupyprogramowid)
12. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,633.56 rows=1 width=568) (actual rows= loops=)

  • Join Filter: ("Extent1".dostawcaid = "Extent11".kontrahenciid)
13. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,613.33 rows=1 width=549) (actual rows= loops=)

  • Join Filter: ("Extent8".grupakontrahentowid = "Extent10".grupakontrahentowid)
14. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,611.88 rows=1 width=517) (actual rows= loops=)

  • Join Filter: ("Extent1".grupakontrahentowid = "Extent9".grupakontrahentowid)
15. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,610.43 rows=1 width=485) (actual rows= loops=)

  • Join Filter: ("Extent1".klientid = "Extent8".kontrahenciid)
16. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,590.21 rows=1 width=462) (actual rows= loops=)

  • Join Filter: ("Extent1".typpakowaniaid = "Extent7".typpakowaniaid)
17. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,588.94 rows=1 width=426) (actual rows= loops=)

  • Join Filter: ("Extent1".specjalizacjeid = "Extent6".specjalizacjeid)
18. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,587.40 rows=1 width=328) (actual rows= loops=)

  • Join Filter: ("Extent1".szczegolyproduktu = "Extent5".id)
19. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,194.60..9,586.22 rows=1 width=292) (actual rows= loops=)

  • Join Filter: ("Extent1".rodzajproduktu = "Extent4".numer)
20. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=9,194.60..9,584.97 rows=1 width=260) (actual rows= loops=)

  • Hash Cond: (("Extent3".nazwa)::text = ("Extent1".nazwa)::text)
  • Join Filter: ((("Extent1".klientid = "Extent3".klientid) OR (("Extent1".klientid IS NULL) AND ("Extent3".klientid IS NULL))) AND ((("Extent1 (...)
21. 0.000 0.000 ↓ 0.0

HashAggregate (cost=2,526.50..2,690.86 rows=16,436 width=30) (actual rows= loops=)

  • Group Key: "Extent3".nazwa, "Extent3".klientid, "Extent3".numerkatalogowy
22. 0.000 0.000 ↓ 0.0

Seq Scan on produkt "Extent3" (cost=0.00..2,313.92 rows=21,258 width=30) (actual rows= loops=)

  • Filter: ("Aktywne" AND najnowszawersja)
23. 0.000 0.000 ↓ 0.0

Hash (cost=6,668.09..6,668.09 rows=1 width=230) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Hash Join (cost=5,026.50..6,668.09 rows=1 width=230) (actual rows= loops=)

  • Hash Cond: (("Extent2".nazwa)::text = ("Extent1".nazwa)::text)
  • Join Filter: ((("Extent1".klientid = "Extent2".klientid) OR (("Extent1".klientid IS NULL) AND ("Extent2".klientid IS NULL))) AND (...)
25. 0.000 0.000 ↓ 0.0

HashAggregate (cost=2,526.54..2,690.93 rows=16,439 width=30) (actual rows= loops=)

  • Group Key: "Extent2".nazwa, "Extent2".klientid, "Extent2".numerkatalogowy
26. 0.000 0.000 ↓ 0.0

Seq Scan on produkt "Extent2" (cost=0.00..2,313.92 rows=21,262 width=30) (actual rows= loops=)

  • Filter: najnowszawersja
27. 0.000 0.000 ↓ 0.0

Hash (cost=2,378.15..2,378.15 rows=9,745 width=222) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Seq Scan on produkt "Extent1" (cost=0.00..2,378.15 rows=9,745 width=222) (actual rows= loops=)

  • Filter: (najnowszawersja AND najnowszawersja AND "Aktywne" AND ("Status" = 1))
29. 0.000 0.000 ↓ 0.0

Seq Scan on rodzajproduktu "Extent4" (cost=0.00..1.11 rows=11 width=40) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Seq Scan on szczegolyproduktu "Extent5" (cost=0.00..1.08 rows=8 width=40) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Seq Scan on specjalizacja "Extent6" (cost=0.00..1.24 rows=24 width=102) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Seq Scan on typpakowania "Extent7" (cost=0.00..1.12 rows=12 width=40) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Seq Scan on kontrahent "Extent8" (cost=0.00..13.99 rows=499 width=27) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Seq Scan on grupakontrahentow "Extent9" (cost=0.00..1.20 rows=20 width=36) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Seq Scan on grupakontrahentow "Extent10" (cost=0.00..1.20 rows=20 width=36) (actual rows= loops=)

36. 0.000 0.000 ↓ 0.0

Seq Scan on kontrahent "Extent11" (cost=0.00..13.99 rows=499 width=23) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Seq Scan on grupaprogramow "Extent12" (cost=0.00..1.14 rows=14 width=36) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

Seq Scan on grupaprogramow "Extent13" (cost=0.00..1.14 rows=14 width=36) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

Seq Scan on grupaprogramow "Extent14" (cost=0.00..1.14 rows=14 width=36) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

Seq Scan on grupaprogramow "Extent15" (cost=0.00..1.14 rows=14 width=36) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

Seq Scan on material "Extent16" (cost=0.00..3.77 rows=77 width=25) (actual rows= loops=)

42. 0.000 0.000 ↓ 0.0

Seq Scan on material "Extent17" (cost=0.00..3.77 rows=77 width=25) (actual rows= loops=)

43. 0.000 0.000 ↓ 0.0

Seq Scan on grupacenowa "Extent18" (cost=0.00..1.47 rows=47 width=21) (actual rows= loops=)

44. 0.000 0.000 ↓ 0.0

Limit (cost=1.60..7.35 rows=1 width=8) (actual rows= loops=)

45. 0.000 0.000 ↓ 0.0

Hash Join (cost=1.60..7.35 rows=1 width=8) (actual rows= loops=)

  • Hash Cond: ("Extent19".id = "Extent20".aktualnaid)
46. 0.000 0.000 ↓ 0.0

Seq Scan on grupacenowa_historia "Extent19" (cost=0.00..4.99 rows=199 width=12) (actual rows= loops=)

47. 0.000 0.000 ↓ 0.0

Hash (cost=1.59..1.59 rows=1 width=4) (actual rows= loops=)

48. 0.000 0.000 ↓ 0.0

Seq Scan on grupacenowa "Extent20" (cost=0.00..1.59 rows=1 width=4) (actual rows= loops=)

  • Filter: ("Extent1".grupacenowaid = grupacenowaid)
49. 0.000 0.000 ↓ 0.0

Seq Scan on grupacenowa "Extent21" (cost=0.00..1.47 rows=47 width=17) (actual rows= loops=)