Autor Wątek: Bardzo długie wczytywanie listy towarów  (Przeczytany 3284 razy)

0 użytkowników i 3 Gości przegląda ten wątek.

Offline ArKaDio

  • Użytkownik
  • **
  • Wiadomości: 66
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.25 Sp1
Bardzo długie wczytywanie listy towarów
« dnia: Sierpień 02, 2021, 11:48:27 »
Witam Szanownych Forumowiczów,

Mam problem z otwieraniem/listowaniem towarów tz. bardzo długo się otwiera się Kartoteka Towary i usługi lub podczas wystawiania faktury bardzo długo ładuje. Nadmienię tylko że ma 500 tyś. pozycji magazynowych z czego 1 tyś są o stanie niezerowym.
Można to jakoś zoptymalizować , ktoś z Was miał podobny problem ?

Z góry dziękuję za odpowiedz

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9234
  • Reputacja +1306/-21
  • Wersja programu: Najnowsza
Bardzo długie wczytywanie listy towarów
« Odpowiedź #1 dnia: Sierpień 03, 2021, 11:00:02 »
A co na to profiler?
Sławek, Zduńska Wola

Offline ArKaDio

  • Użytkownik
  • **
  • Wiadomości: 66
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.25 Sp1
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #2 dnia: Sierpień 03, 2021, 14:33:10 »
A co na to profiler?


Dziękuje za odpowiedz,

Profiler też długo myśli ok 20s. przy zapytaniu

SELECT Tw.tw_Id,Tw.tw_Rodzaj,Tw.tw_Symbol,Tw.tw_Nazwa,Tw.Stan,Tw.Rezerwacja,Tw.Dostepne,Tw.tw_JednMiary,Tw.tc_CenaNetto1,Tw.tw_Opis,Tw.tw_DostSymbol,Tw.tw_SklepInternet,Tw.tc_CenaNetto2,Tw.tc_CenaNetto3,Tw.tc_CenaNetto4,Grupa.grt_Nazwa,Flagi.flg_Numer,FlagiWartosci.flw_CzasOstatniejZmiany,FlagaUzytk.uz_Identyfikator,FlagiWartosci.flw_Komentarz,FlagiWartosci.flw_IdFlagi,Flagi.flg_Text,Flagi.flg_Id,PwDane.pwd_TypObiektu,PwDane.pwd_Tekst01,PwDane.pwd_Tekst02,PwDane.pwd_Tekst03,PwDane.pwd_Tekst04 FROM vwTowar AS Tw LEFT JOIN (SELECT bib_IdObiektu as tdk_IdTowaru, COUNT(bib_IdObiektu) AS IleDokBibl FROM bib_Dokument WHERE bib_TypObiektu = 47 GROUP BY bib_IdObiektu) AS BiblDok ON Tw.tw_Id=BiblDok.tdk_IdTowaru LEFT JOIN sl_GrupaTw AS Grupa ON Tw.tw_IdGrupa=Grupa.grt_Id LEFT JOIN fl_Wartosc AS FlagiWartosci ON Tw.tw_Id=FlagiWartosci.flw_IdObiektu AND flw_IdGrupyFlag = 19 LEFT JOIN pd_Uzytkownik AS FlagaUzytk ON FlagiWartosci.flw_IdUzytkownika=FlagaUzytk.uz_Id LEFT JOIN fl__Flagi AS Flagi ON FlagiWartosci.flw_IdFlagi=Flagi.flg_Id LEFT JOIN sl_ModelTowar AS ModelTowar ON Tw.tw_Id=ModelTowar.mtw_IdTowar LEFT JOIN sl_ModelTw AS Model ON ModelTowar.mtw_IdModel=Model.mdt_Id LEFT JOIN pw_Dane AS PwDane ON Tw.tw_Id=PwDane.pwd_IdObiektu AND pwd_TypObiektu = -14 LEFT JOIN gr_Miniaturka AS Miniaturka ON Tw.tw_Id=Miniaturka.grm_IdObiektu AND grm_TypObiektu = 2 WHERE  (  st_MagId = 4  )  ORDER BY Tw.tw_Nazwa

index Live Query statistics zaproponował :

/*
Missing Index Details from SQLQuery1.sql - SERWER\INSERTGT.BAZA (sa (98))
The Query Processor estimates that implementing the following index could improve the query cost by 13.956%.
*/


USE [BAZA]
GO
CREATE NONCLUSTERED INDEX [IX_tw_Stany_2]
ON [dbo].[tw_Stan] ([st_MagId])
INCLUDE ([st_TowId],[st_Stan],[st_StanRez])
GO

Ale to też nie pomaga.

Najlepiej pomogą ustawienie w Lista towarów,  filtr  "o stanie: niezerowym bez usługi" ,  to działa błyskawicznie - ale czy idzie go przypisać na stałe użytkownikom ?




Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4919
  • Reputacja +173/-11
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #3 dnia: Sierpień 04, 2021, 09:09:47 »
Nie znam specyfiki firmy ale podstawowe pytanie to czy te 499 tysięcy pozycji o stanach zerowych jest potrzebnych w bieżącej działalności?
Jeśli nie to ustawienie zbędnych jako nieaktywnych powinno znacznie pomóc.
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline ArKaDio

  • Użytkownik
  • **
  • Wiadomości: 66
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.25 Sp1
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #4 dnia: Sierpień 24, 2021, 08:09:58 »
Dzięki za poradę, zastanawiam się jak wybrać zbędny towar i jak go potem ustawić jako nieaktywny ?
Specyfika jest taka,  że jeden produkt dzielony jest na 100 mniejszych o innej nazwie np. HW100 (100mm) dzielimy na HW8 ( 8mm ) , HW6 ( 6mm ) itd ...) 

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17232
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #5 dnia: Sierpień 24, 2021, 09:50:12 »
...
Profiler też długo myśli ok 20s. przy zapytaniu
...
Ale to też nie pomaga.

Przy dzisiejszym sprzęcie powinno udać się uzyskać lepszy wynik, ale jak widać nie jest to takie proste, gotowe narzędzia nie znają specyfiki programu i nie uwzględniają możliwości modyfikacji struktury bazy danych w celu optymalizacji, trzeba wiedzieć co się robi. Przede wszystkim należy takie problemy przewidywać i ich unikać.

Najlepiej pomogą ustawienie w Lista towarów,  filtr  "o stanie: niezerowym bez usługi" ,  to działa błyskawicznie - ale czy idzie go przypisać na stałe użytkownikom ?

Podstawy działania programu, które nie raz opisywaliśmy na forum - ustawienia filtrów są zapisywane w bazie danych, więc wystarczy je nadpisać użytkownikom.

Dzięki za poradę, zastanawiam się jak wybrać zbędny towar i jak go potem ustawić jako nieaktywny ?
Specyfika jest taka,  że jeden produkt dzielony jest na 100 mniejszych o innej nazwie np. HW100 (100mm) dzielimy na HW8 ( 8mm ) , HW6 ( 6mm ) itd ...)

Jaki sens było / jest ładować do bazy danych 98% towarów, które nie są wykorzystywane ? Przy kilku tys. można sobie na to pozwolić, ale tutaj mowa o 0,5mln pozycji... Pierwsze i dość oczywiste rozwiązanie to zakładać taką kartotekę (w ostateczności aktywować) dopiero w momencie jej wykorzystania.
Daniel, Białystok.

Offline ArKaDio

  • Użytkownik
  • **
  • Wiadomości: 66
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.25 Sp1
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #6 dnia: Sierpień 24, 2021, 10:24:14 »


Jaki sens było / jest ładować do bazy danych 98% towarów, które nie są wykorzystywane ? Przy kilku tys. można sobie na to pozwolić, ale tutaj mowa o 0,5mln pozycji... Pierwsze i dość oczywiste rozwiązanie to zakładać taką kartotekę (w ostateczności aktywować) dopiero w momencie jej wykorzystania.
[/quote]

One zostały wykorzystane na przełomie kilku lat. Towar się pojawił i teraz go nie ma, albo nie rotował i został zutylizowany.

Jak widać Subiekt słabo sobie radzi z dużą ilością towaru w kartotekach.   

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17232
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #7 dnia: Sierpień 24, 2021, 10:40:09 »
One zostały wykorzystane na przełomie kilku lat. Towar się pojawił i teraz go nie ma, albo nie rotował i został zutylizowany.

Serio, wprowadzaliście do sprzedaży kilkaset pozycji dziennie ? Tak wychodzi mi z prostych obliczeń "500 000 / kilka lat".

Jeśli nawet to dlaczego kartoteki nie były w takim samym tempie - na bieżąco - dezaktywowane ? Jeśli to taka specyfika danych to dlaczego nie można określić aktywności towaru na przykład na podstawie ostatniego ruchu towaru w magazynie ?

No i jeszcze rozwiązanie z FAQ: http://forumsubiekta.pl/subiekt/faq-czyli-najczesciej-zadawane-pytania/msg75974/#msg75974.

Jak widać Subiekt słabo sobie radzi z dużą ilością towaru w kartotekach.

To zależy z której strony spojrzymy - ja widzę, że ktoś wybrał niewłaściwe rozwiązanie do swoich potrzeb i/lub nie radzi sobie z jego serwisowaniem.

ps.
Kiedyś pomagałem dla klienta, który miał około 1,5mln towarów, kartotekę odchudzałem do około 0,5mln, nie przypominam sobie jakichś większych narzekań. Poza samą ilością towarów problem był z ilością magazynów, gdyż stany sumaryczne tworzą się dla każdego towaru w każdym magazynie, większość z nich też udało się usunąć.
« Ostatnia zmiana: Sierpień 24, 2021, 10:43:57 wysłana przez dkozlowski »
Daniel, Białystok.

Offline ArKaDio

  • Użytkownik
  • **
  • Wiadomości: 66
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.25 Sp1
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #8 dnia: Sierpień 24, 2021, 11:26:48 »
Początkowo pierwsze założenie kartotek było z automatu, a dalej się uzbierało ...
Nie wydaje mi się, że nie radzę sobie z serwisem, nie mnie to oceniać :-). I tak udało się zoptymalizować sprzęt i ustawienia że wyszło z 20s do 8s, oczywiście z filtrami jest natychmiastowo.
Pytam na grupie bo może  , ktoś miał podobny problem i podzieli się swoim doświadczeniem - np. czy lepiej stworzyć nową bazę i do niej migrować dane , czy przenieść do innej lini np. Subiekt Nexo  itp..
Nie mam wpływu na to jak klient tworzy kartoteki, taki problem zastałem ...

   

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17232
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #9 dnia: Sierpień 24, 2021, 13:09:16 »
Od lat opisuję możliwe rozwiązania problemu, teraz przypomniałem... Przypominam również, że to forum użytkowników, a nie osób oferujących usługi serwisowe... Osobiście zrobiłbym to co zaproponowałem - usunąłbym z bazy danych zbędne dane, NIE tworzyłbym nowej bazy danych, to zupełnie co innego.
Daniel, Białystok.

Offline ArKaDio

  • Użytkownik
  • **
  • Wiadomości: 66
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.25 Sp1
Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #10 dnia: Sierpień 25, 2021, 08:05:49 »
Panie Danielu dziękuję za odpowiedz postaram się uczynić jak Pan napisał, w ramach sprostowania "nie osób oferujących usługi serwisowe...' - nie oferuje usług serwisowych w tym zakresie lecz staram się pomóc zaprzyjaźnionej firmie "non profit",  i sam jest użytkownikiem Subiekta GT nie w takiej liczbie towarów - a sam problem wydaje się być pomocny użytkownikom, u których może nastąpić szybki przyrost towarów.   

Forum Użytkownikow Subiekt GT

Odp: Bardzo długie wczytywanie listy towarów
« Odpowiedź #10 dnia: Sierpień 25, 2021, 08:05:49 »