Wczytanie widoku ostatnich 30 dni faktur zajmuje u mnie 18.5 sek.
To nie jest normalne, ale nie jest też powszechne, było kilka optymalizacji w tym obszarze (tak się składa, że akurat z mojej inicjatywy - modyfikacja filtru okresu oraz dodatkowy indeks na tabeli oznaczeń dla JPK VAT, chociaż ten nie jest jeszcze optymalny i może powodować problemy z ładowaniem listy dokumentów), osobiście od dawna nie spotkałem się z problemami w tym obszarze, u naszych klientów wystawiających > 1k faktur dziennie lista ta za taki okres ładuje się w okolicach 1s.
zczytanie tych samych danych bezpośrednio i wyplucie ze zmiennej to 3 sek:
"SELECT td.dok_DataWyst AS DATA, td.dok_NrPelny AS NUMER, te.adr_Nazwa AS KONTRAHENT, td.dok_WartTwBrutto AS WARTOSC, td.dok_DoDokNrPelny AS DOKUMENT_POW, tda.pwd_Tekst01 AS ZAMOWIENIE FROM dok__Dokument AS td JOIN adr__Ewid AS te ON td.dok_PlatnikId=te.adr_IdObiektu AND adr_TypAdresu=1 JOIN pw_Dane as tda ON tda.pwd_IdObiektu=td.dok_Id WHERE dok_typ='2' AND DATEDIFF(day, dok_DataWyst, GETDATE())<30 ORDER BY td.dok_Id DESC"
Ale czego to ma być przykład, przecież to NIE są te same dane, które są ładowane do listy w programie ?

A program jest jeden dla wszystkich użytkowników, a użytkownicy programów oczekują wyświetlania jak największej ilości informacji... Chcesz mieć programy dostosowany do swoich potrzeb to musisz sięgnąć po Navireo, tam możesz zmodyfikować listę tak, jak potrzebujesz - pobierać tylko te dane, które potrzebujesz.
Poza tym skąd jest to zapytanie, gdyż filtr okresu z bardzo starej wersji programu, sprzed wspomnianych wyżej optymalizacji i zawiera "szkolny" błąd (porównanie z wynikiem funkcji), który uniemożliwia skorzystanie z indeksu po dacie i tym samym powoduje nieoptymalne wykonanie zapytania, optymalny / poprawiony warunek wygląda tak:
WHERE (dok_Typ = 2 or dok_Typ = 4 or dok_Typ = 62) AND Dok.dok_MagId = 1 and dok_DataWyst>= '20210507' AND '20210606' >= dok_DataWyst
--
Da się to jeszcze zomptymalizować, bo wczytanie do tablicy danych to dosłownie ułamki sekundy.
Co robi subiekt? Trudno powiedzieć, ale raczej coś głupiego, jak np. wczytywanie WSZYSTKICH produktów przypisanych do faktur, mimo, ze to nie jest potrzebne,...
Co to w ogóle za pytanie, zgadywanie i bzdurne domysły ?
Przecież dokładnie wiadomo co robi Subiekt, wystarczy zajrzeć do komunikacji z serwerem SQL- nie robi niczego takiego jak opisujesz jak wczytywanie pozycji dokumentów... Subiekt nie jest samodzielną aplikacją, dane przechowuje w innej aplikacji jaką jest serwer SQL i równie ważne, a zwykle ważniejsze jest to co robi serwer SQL, w jakiej jest edycji, na jakim sprzęcie pracuje.
...no, ale dzieki temu mamy "instykt", dzieki któremu wyszukiwanie po produktach trwa tyle co nic, zamiast 0.6 sek
)
Kolejne bzdury bez żadnego potwierdzenia - wyświetlanie listy dokumentów (bez filtrowania) NIE ma nic wspólnego z mechanizmem Instynktu, filtrowanie w GT jest przecież realizowane po stronie bazy danych poprzez dynamiczny SQL, a nie po stronie programu - dopiero w momencie włączenia filtru jest modyfikowane zapytanie listy tak, aby sięgało poprzez pozycje dokumentu do słownika InsTYNKT'u.
Wcześniej zwróciłem uwagę, że:
Proszę o kilka przykładów, wygłaszanie takich tez bez żadnych argumentów nie jest poważne.
Już wiele raz pisałem na tym forum - na prawdę rozumiem, że nie każdy musi się znać na wszystkim, jednak kompletnie nie rozumiem, dlaczego ktoś zabiera się / wypowiada na tematy, na których się nie zna, dlaczego tak łatwo i z taką pewnością opisuje kompletnie błędne wnioski zamiast wcześniej dowiedzieć się / założyć, że jednak czego nie wie lub najzwyczajniej w świecie coś przeoczył ?