Autor Wątek: Sfera PW RW wydajność  (Przeczytany 3100 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline jczapla

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50
Sfera PW RW wydajność
« dnia: Lipiec 11, 2019, 12:07:22 »
Hejka
Napisałem prosty kod, który generuje RW i PW. Chyba dość typowy. Uruchamiany jest w WebAPI na IIS. Do mojego WebAPI wysyłana jest cała struktura danych w jednym żądaniu.
Wersja 1.50 HF2.

SuDokument rwdoc = CreateNewRW(data, magCode);
           

            foreach (var pr in data.Products)
            {
                AddProductToRW(rwdoc, pr);
               
            }
            rwdoc.Zapisz(); ;
            res.RWId = rwdoc.Identyfikator;
            res.RWNr = rwdoc.NumerPelny;
            rwdoc.Zamknij();


            SuDokument pwdoc = CreateNewPW(data, magCode);
            foreach (var pr in data.Products)
            {
               
                AddPRoductToPW(pwdoc, pr);
            }

            pwdoc.Zapisz();
            res.PWId = pwdoc.Identyfikator;
            res.PWNr = pwdoc.NumerPelny;
            pwdoc.Zamknij();

W metodach AddProductToRW(...) jest coś takiego

foreach (var s in pr.Surowce) {
                TowarInfoDTO ct = towarService.GetTowarInfo(s.Symbol, db); // tu jest pobranie ID produktu
                if (ct != null)
                {
                    SuPozycja p = rwdoc.Pozycje.Dodaj(ct.Id);
                   
                    p.IloscJm = s.Ilosc;
                   
                }
                else {
                    throw new Exception($"Blad dodania towaru {s.Symbol} do dokumentu RW");
                }
               
            }

I wszystko działa tylko dość wolno. Dla 60 pozycji w RW i 20 pozycji w PW wykonuje się ponad 30 s. Uruchomione na serwerze na którym jest DB i web API.   
Nie za dużo? Co może być przyczyną?

Offline jczapla

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50
Odp: Sfera PW RW wydajność
« Odpowiedź #1 dnia: Lipiec 11, 2019, 12:10:20 »
SuDokument AutoPrzeliczanie może pomóc?

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera PW RW wydajność
« Odpowiedź #2 dnia: Lipiec 11, 2019, 12:16:11 »
Nie za dużo?

Dożo dla GT to tysiące pozycji, przy takich ilościach z przeliczaniem pozycji nie powinno być dużej różnicy, ale można spróbować.

Co może być przyczyną?

To co najczęściej - podejrzewam problemy wydajnościowe.
Daniel, Białystok.

Offline jczapla

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50
Odp: Sfera PW RW wydajność
« Odpowiedź #3 dnia: Lipiec 11, 2019, 12:38:05 »
Dzięki za odpowiedź.

Wydajnościowych problemów to bym się nie spodziewał bo to dość mała baza (1,2 GB) i kilku użytkowników, którzy większość czasu w pracy patrzą w smartfony. Chociaż... Właśnie sprawdziłem i serwer ma 8GB RAMu :) #jprdl.

Dużo to miałem na myśli czas a nie ilość pozycji.

Sprawdziłem z wyłączeniem Autoprzeliczania i zeszło do ok 15s. Ale nie mogę zastosować bo w moim przypadku ja korzystam z kolejno przeliczonych wartości dokumentu po dodaniu kolejnych pozycji do RW.


I teraz zupełnie inny problem :)
Przekazuje do API taką strukturę

class Produkt{ //gotowy (dla PW)

  Lista<Surowiec> Surowce (dla RW)
}
   

I dodając kolejne pozycje do RW wyliczam koszt surowców dla produktu, dodanie surowców dla jednego Produktu określa mi koszt RW dla tego produktu. Jak wyłączę to przeliczenie to w trakcie dodawania do RW wartość RW = 0. Wcześniej próbowałem odpytywać ceny z procedury spSub_CenyPoziom_12 ale w testowych danych zwracała dziwne wartości jeśli towar (surowiec) nie miał dostawy z ceną. Jeszcze sprawdzę.

Jaki jest optymalny sposób dodawania pozycji do RW aby można było określić wartość RW po np. każdych 10 pozycjach?



Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera PW RW wydajność
« Odpowiedź #4 dnia: Lipiec 11, 2019, 12:51:52 »
Wydajnościowych problemów to bym się nie spodziewał bo to dość mała baza (1,2 GB) i kilku użytkowników, którzy większość czasu w pracy patrzą w smartfony.

Najwyraźniej nie wiesz czym są problemy wydajnościowe, poczytaj moje wypowiedzi na forum, od lat powtarzam, że problemy nie są ściśle powiązane z rozmiarem bazy danych/ilością danych, gdzie w tym przypadku jeśli rozmiar wynika z dokumentów to jest to już bardzo prawdopodobne.

Chociaż... Właśnie sprawdziłem i serwer ma 8GB RAMu :) #jprdl.

Nie rozumiem zdziwienia - jeśli SQL jest w wersji <= 2008 R2 to pamięci jest z zapasem, jeśli w wyższej to może trochę brakować, ale nie musi...

I teraz zupełnie inny problem :)
Przekazuje do API taką strukturę

class Produkt{ //gotowy (dla PW)

  Lista<Surowiec> Surowce (dla RW)
}
   

I dodając kolejne pozycje do RW wyliczam koszt surowców dla produktu, dodanie surowców dla jednego Produktu określa mi koszt RW dla tego produktu. Jak wyłączę to przeliczenie to w trakcie dodawania do RW wartość RW = 0. Wcześniej próbowałem odpytywać ceny z procedury spSub_CenyPoziom_12 ale w testowych danych zwracała dziwne wartości jeśli towar (surowiec) nie miał dostawy z ceną. Jeszcze sprawdzę.

Jaki jest optymalny sposób dodawania pozycji do RW aby można było określić wartość RW po np. każdych 10 pozycjach?

Wygląda na to, że nie znasz podstaw działania programu, a bez tego ciężko/nie da się tworzyć rozwiązań dodatkowych - w momencie edycji dokumentu (jeśli nie dysponujesz dostaw, automatycznie lub ręcznie) to nie poznasz rzeczywistych kosztów wydawanych towarów, znane są dopiero po wydaniu towaru z magazynu, czyli po zapisie dokumentu, najprościej więc będzie po prostu odczytać te dane po zapisie dokumentu...
Daniel, Białystok.

Offline jczapla

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.50
Odp: Sfera PW RW wydajność
« Odpowiedź #5 dnia: Lipiec 11, 2019, 14:22:56 »
Dzięki, spróbuję określać wartości produktów po zapisaniu dokumentu RW.

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4919
  • Reputacja +173/-11
Odp: Sfera PW RW wydajność
« Odpowiedź #6 dnia: Lipiec 11, 2019, 15:20:43 »
Dzięki, spróbuję określać wartości produktów po zapisaniu dokumentu RW.
To teraz próbujesz.
Po zapisaniu je po prostu odczytasz  ;)
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Forum Użytkownikow Subiekt GT

Odp: Sfera PW RW wydajność
« Odpowiedź #6 dnia: Lipiec 11, 2019, 15:20:43 »