Autor Wątek: Zestawienia wysyłek - błąd wykonania zapytania  (Przeczytany 3160 razy)

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

Offline brudsien

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1.63 HF1
Zestawienia wysyłek - błąd wykonania zapytania
« dnia: Wrzesień 08, 2020, 19:52:55 »
Witam,

Od dłuższego czasu posiadamy ten oto SQL

SELECT tw_Nazwa AS [Nazwa], tw_Symbol AS [Symbol], grt_Nazwa AS [Grupa], SUM(ob_IloscMag) AS [Ilość], tw_JednMiary AS [J.m.],
SUM(ob_WartBrutto) AS [Brutto], SUM(ob_WartNetto) AS [Netto], SUM(ob_WartMag) AS [Koszt], SUM(ob_WartNetto-ob_WartMag) AS [Zysk],
CASE WHEN SUM(ob_WartNetto) = 0 THEN 0 ELSE ROUND(100*SUM(ob_WartNetto-ob_WartMag)/SUM(ob_WartNetto), 2) END AS [Marża(%)]
FROM(
SELECT {D: Data od} AS data, F.dok_Id, F.dok_RodzajOperacjiVat, F.dok_Status, F.dok_MagId, F.dok_DataWyst, F.dok_NrPelny, F.dok_PlatnikId, M.dok_OdbiorcaId, F.dok_Typ, C.ob_NumerSeryjny, C.ob_Opis, C.ob_Rabat, B.ob_TowId,
C.ob_IloscMag+(B.ob_Znak*B.ob_IloscMag)+ISNULL(D.ob_IloscMag,0) AS ob_IloscMag, C.ob_WartNetto+(B.ob_Znak*B.ob_WartNetto)+ISNULL(D.ob_WartNetto,0) AS ob_WartNetto,
C.ob_WartBrutto+(B.ob_Znak*B.ob_WartBrutto)+ISNULL(D.ob_WartBrutto,0) AS ob_WartBrutto,
CASE WHEN (C.ob_TowRodzaj&6)>0 THEN 0 ELSE dbo.fnZestSub_KosztSpr({D: do}, C.ob_Id)*C.ob_Znak END AS ob_WartMag
FROM dok__Dokument F
INNER JOIN dok__Dokument M ON M.dok_DoDokId = F.dok_Id
INNER JOIN dok_Pozycja C ON C.ob_DokMagId = M.dok_Id
LEFT JOIN (SELECT ob_DoId, SUM(ob_Znak*ob_IloscMag) AS ob_IloscMag, SUM(ob_Znak*ob_WartNetto) AS ob_WartNetto, SUM(ob_Znak*ob_WartBrutto) AS ob_WartBrutto
FROM dok_Pozycja WHERE ob_Status=2 GROUP BY ob_DoId) D ON C.ob_Id = D.ob_DoId
INNER JOIN dok_Pozycja B ON C.ob_Id = B.ob_Doid
INNER JOIN tw_Cena ON B.ob_TowId = tc_IdTowar
WHERE F.dok_Typ = 2 AND F.dok_Podtyp = 2 AND F.dok_Status = 1 AND B.ob_DokHanId = F.dok_Id AND C.ob_IloscMag+(B.ob_Znak*B.ob_IloscMag)+ISNULL(D.ob_IloscMag,0) <> 0
UNION ALL
SELECT {D: Data od} AS data, dok_Id, dok_RodzajOperacjiVat, dok_Status, dok_MagId, dok_DataWyst, dok_NrPelny, dok_PlatnikId, dok_OdbiorcaId, dok_Typ, ob_NumerSeryjny, ob_Opis, ob_Rabat, ob_TowId,
ob_IloscMag, ob_WartNetto, ob_WartBrutto, CASE WHEN (ob_TowRodzaj&6)>0 THEN 0 ELSE dbo.fnZestSub_KosztSpr({D: do}, ob_Id)*ob_Znak END AS ob_WartMag
FROM dok__Dokument
INNER JOIN dok_Pozycja ON ob_DokHanId = dok_Id
INNER JOIN tw_Cena ON ob_TowId = tc_IdTowar
WHERE ((dok_Typ = 2 AND dok_Podtyp = 2 AND ob_WartNetto <> 0 AND ob_DoId IS NULL) OR (dok_Typ = 2 AND dok_Podtyp = 0) OR (dok_Typ = 2 AND dok_Podtyp = 3 AND dok_StatusEx = 1) OR (dok_Typ = 2 AND dok_Podtyp = 5) OR dok_Typ = 62)
) k
INNER JOIN tw__Towar ON ob_TowId = tw_Id
LEFT JOIN sl_GrupaTw ON grt_Id = tw_IdGrupa
WHERE dok_DataWyst BETWEEN {D: Data od} AND {D: do}
AND dok_Id IN ({CHL_DB: SELECT dok_Id, dok_NrPelny AS Dokument FROM dok__Dokument WHERE dok_Typ=2 ORDER BY dok_DataWyst DESC, dok_Nr DESC:Faktura:0:wybierz})
AND tw_Id IN ({LM:TW:Towar})
GROUP BY tw_Nazwa, tw_Symbol, tw_JednMiary, grt_Nazwa
ORDER BY tw_Nazwa

I niestety przestał działać, nie znamy przyczyny, sam test do bazy przechodzi poprawnie ale samo uruchomienie tego SQL już wywołuje komunikat "błąd wykonania zapytania"

Co może być przyczyną problemu ?

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17059
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #1 dnia: Wrzesień 08, 2020, 20:09:55 »
Może timeout - po jakim czasie pojawia się błąd ?
Daniel, Białystok.

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4876
  • Reputacja +172/-11
Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #2 dnia: Wrzesień 08, 2020, 20:22:08 »
A po podaniu parametrów i kliknięciu "wylicz" co się dzieje?
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline brudsien

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1.63 HF1
Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #3 dnia: Wrzesień 08, 2020, 20:53:20 »
Może timeout - po jakim czasie pojawia się błąd ?
Byl timeout, zmieniłem wartość w rejestrze na 180 sekund. Komunikat juz nie występuję
A po podaniu parametrów i kliknięciu "wylicz" co się dzieje?
Myśli, widać obciążenie procesora w procesie subiekt gt i procesie sql po jakimś czasie ustaje i nie wychodzą wyniki

Nie wiem czego się złapać. Może gdzieś są logi z tych operacji?

Wysłane z mojego SM-G980F przy użyciu Tapatalka


Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17059
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #4 dnia: Wrzesień 08, 2020, 21:49:37 »
Co nie jest jeszcze jasne ? Logów z wykonywania zestawień nie ma.
Daniel, Białystok.

Offline Paweł Szczygiel

  • Aktywny użytkownik
  • ***
  • Wiadomości: 169
  • Reputacja +4/-0
Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #5 dnia: Wrzesień 08, 2020, 22:05:58 »
Prośba o podanie wielkości bazy ? Czy są robione systematycznie procesy konserwacji bazy defragmentacja indeksów , aktualizacja statystyk.
Paweł Szczygieł

Offline brudsien

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1.63 HF1
Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #6 dnia: Wrzesień 09, 2020, 22:43:31 »
Prośba o podanie wielkości bazy ? Czy są robione systematycznie procesy konserwacji bazy defragmentacja indeksów , aktualizacja statystyk.
Wielkość bazy to 1 GB. Byla robiona odbudowa indexow I kontrola danych

Najlepszego jest to iż  zauważyliśmy że ten kod na jednym podmiocie działa (brak bledu na dzien dobry) i można wykonać zestawienie ale juz w mniejszej ilości tzn nie zaznaczając wszystkich faktur na raz

Rozmiar bazy na której to dziala to 953 MB

Wysłane z mojego SM-G980F przy użyciu Tapatalka


Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17059
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #7 dnia: Wrzesień 09, 2020, 22:48:53 »
Nie rozumiem zdziwienia - dwa różne podmioty, dwa różne zestawy danych - skąd oczekiwanie, że zestawienie ma się wykonać tak samo ?
Daniel, Białystok.

Offline Paweł Szczygiel

  • Aktywny użytkownik
  • ***
  • Wiadomości: 169
  • Reputacja +4/-0
Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #8 dnia: Wrzesień 10, 2020, 09:26:09 »
Nie pozostaje nic innego jak analiza zapytania pod kątem planu zapytania i określenie który z elementów planu powoduje długi czas jego wykonania.
Paweł Szczygieł

Forum Użytkownikow Subiekt GT

Odp: Zestawienia wysyłek - błąd wykonania zapytania
« Odpowiedź #8 dnia: Wrzesień 10, 2020, 09:26:09 »