Neu SQL Abfrage wird mehrfach ausgeführt - Ausgabe in der Übersicht falsch

tom10

Sehr aktives Mitglied
2. Oktober 2012
716
108
06774 Muldestausee
Mir ist beim erstellen einer eigenen Übersicht aufgefallen, dass die SQL-Abfrage ab einer hohen Anzahl von markierten Einträgen (@Keys) wiederholt wird und damit das Ergebnis falsch ist bzw. das Ergebnis mehrfach ausgegeben wird. Getestet und gegengeprüft habe ich das bei Artikeln und Aufträgen.

Ab welcher Anzahl an markierten Artikeln/Aufträgen das Verhalten auftritt, ist unterschiedlich. Die kleinste Anzahl an markierten Artikeln/Aufträgen, bei der der Fehler bei mir auftrat, lag bei ca. 1.600. Darunter ist die Ausgabe korrekt.

Für mich ist das ein Bug. Ist das noch jemandem aufgefallen?

Simple Beispiele für Artikel
SQL:
SELECT kartikel
    FROM tArtikel
    WHERE kArtikel IN (@Keys)
    ORDER BY kArtikel ASC
und Aufträge
SQL:
SELECT kAuftrag
    FROM Verkauf.tAuftrag
    WHERE kAuftrag IN (@Keys)
    ORDER BY kAuftrag

Vielleicht weiß @Manuel Pietzsch mehr?


WaWi 1.7.15.3
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
716
108
06774 Muldestausee
Laut Dokumention von Microsoft kann es bei einigen tausend Werte zu Problemen führen.
https://learn.microsoft.com/en-us/s...in-transact-sql?view=sql-server-ver16#remarks

Ein Workaround wäre laut Doku die Werte in eine Subquery zu packen.
Das ist nicht das Problem. Auch ganz ohne Filter in der Abfrage, also ein einfaches SELECT kartikel FROM tArtikel, verursacht den selben Fehler. Im SSMS funktionieren die Abfragen ohne Probleme.
 

kelvin.

Gut bekanntes Mitglied
15. Februar 2023
164
62
Frankfurt
Kann das auch bestätigen. Habe es reproduzieren können.

Im Profiler habe ich gesehen, dass der in der IN Bedingung nur 2000 Werte übernimmt und dass die Abfrage 5 Mal gestellt worden ist und deswegen in der Übersicht 5 Mal ausgegeben werden.

Es werden aber auch nicht alle Aufträge angezeigt, wenn man den Filter "Alle anzeigen" nutzt.
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
748
266
Kann das auch bestätigen. Habe es reproduzieren können.

Im Profiler habe ich gesehen, dass der in der IN Bedingung nur 2000 Werte übernimmt und dass die Abfrage 5 Mal gestellt worden ist und deswegen in der Übersicht 5 Mal ausgegeben werden.

Es werden aber auch nicht alle Aufträge angezeigt, wenn man den Filter "Alle anzeigen" nutzt.
Moin. Ich würde vorschlagen, eine Begrenzung zu verwenden: SELECT TOP (200) kArtikel FROM
 

tom10

Sehr aktives Mitglied
2. Oktober 2012
716
108
06774 Muldestausee
Moin. Ich würde vorschlagen, eine Begrenzung zu verwenden: SELECT TOP (200) kArtikel FROM
Das wird nicht funktionieren. Ich selektiere 500 und bekomme die Werte für die ersten 200?
Zudem bringt das nichts, wenn man einen Üblick über bestimmter Werte haben möchte, eventuell auch kumuliert. Was sind schon 200 oder auch 1000 Artikel. Das sind am Ende z.B. 20 oder 100 Artikel in 10 Farben. Wenn ich anfangen soll, die SQL Abfragen zu beschneiden, weil es irgendwelche Einschränkungen gibt, kann ich gleich mit der Ameise arbeiten und in Excel rumfrickeln. Dafür gibt es die eigenen Übersichten ja schließlich.

Das Problem das ich sehe, sind die SQLs die kumulierte Werte ausgeben und davon gibt es hier im Forum einige. Da fällt der Fehler nicht so schnell auf. Man vertraut der Abfrage, nimmt die Werte als gegeben aber ein Teil der Artikel/Aufträge wurde nicht berücksichtigt, oder wie hier, mehrfach ausgewertet. Das darf nicht passieren, auch nicht bei mehreren Tausend. Treten Fehler auf oder ist die Schnittstelle überlastet, muss es eine Fehlermeldung geben oder im Zweifelsfall gar keine Ausgabe. Verfälschte Werte aber keinesfalls.

Aber zurück zum Fehler. Wenn man eine einfache Abfrage wie SELECT kartikel FROM tArtikel ohne IN(@Keys) benutzt und nur einen oder wenige selektiert, stimmt das Ergebnis. Ab einer bestimmten Anzahl werden die Werte dann mehrfach ausgegeben. Der Fehler hat also nichts mit der Abfrage an sich zu tun. Das Problem entsteht bereits vorher oder an anderer Stelle.
 

John

Sehr aktives Mitglied
3. März 2012
3.069
672
Berlin
Gibts da nicht ein Limit, wie groß/lang eine SQL Anfrage sein darf?
Das Problem hat man z.B. auch, wenn man zu viele Artikel in der Auswahl auf einmal aus einer Kategorie per Rechtsklick zu entfernen versucht. Da gibt es (oder gab es früher) eine SQL Fehlermedung.
Vielleicht wird hier aufgeteilt, weil sonst die IN-Bedingung zu viele Elemente hätte. Doof, wenn das Ergebnis deshalb falsch wird.
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
748
266
Moin.
Die Query für @key/@keys wird (schon seit immer?) 2-mal verarbeitet, teilweise 2-mal ausgeführt.
Wie oben von Anderen erwähnt, für @keys gibt es nicht nur Einschränkungen seitens JTL - maximal Anzahl an Schlüsseln, maximale "Laufzeit" für Regex-Suche in der Query, usw.
sondern auch von Microsoft: für IN - MS schreibt von Tausenden, wir hatten schon Probleme bei mehr als 2000, überhaupt ist IN-Performance bei vielen Werten sehr schlecht,
Oracle schränkt Werte für IN auf maximal 1000, nicht ohne Grund; für Abfragen/WHERE-Klauseln/ORDER BY/usw.: gelten technisch-/hardware-bedingt Größeneinschränkungen:
s. https://learn.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server.
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu SQL Abfrage, 3. Mahnstufe User helfen Usern - Fragen zu JTL-Wawi 1
Beantwortet Hilfe bei SQL Abfrage erbeten User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Abfrage - Sendungsnummern als Liste nach Datum Schnittstellen Import / Export 2
Neu Ameise Export in SQL Abfrage umwandeln User helfen Usern - Fragen zu JTL-Wawi 11
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Microsoft SQL unter MS365 Installation von JTL-Wawi 2
Neu Variable oder SQL zum Feld "Gewinn netto" (im Auftrag) Eigene Übersichten in der JTL-Wawi 9
Neu SQL Code zur Ausgabe des Verkaufspreis je Kundengruppe User helfen Usern 1
Neu MS SQL Server auf Windows vs Linux Starten mit JTL: Projektabwicklung & Migration 9
Neu DB: kPlattform eines Auftrages ändern (SQL) - Zwecks Lagerplatzreservierung User helfen Usern - Fragen zu JTL-Wawi 0
Neu SQL prozeduren mit #temp Tabellen Eigene Übersichten in der JTL-Wawi 28
Neu Ware direkt in ein Standardlager einbuchen per SQL StoreProcedure dbo.spWarenlagerEingangSchreiben Schnittstellen Import / Export 8
Neu List & Label Vorlagen: SQL Injection Warnung umgehen um Datenquelle zu ergänzen User helfen Usern - Fragen zu JTL-Wawi 12
Neu WAWI 1.9 mit SQL Server Developer User helfen Usern - Fragen zu JTL-Wawi 3
Neu JTL WAWI SQL Dokumentation offline Arbeitsabläufe in JTL-Wawi 2
Neu Hosting der SQL-DB bei JTL User helfen Usern - Fragen zu JTL-Wawi 6
Neu Bild per SQL Query aus lesen aus von Artikel Bildplattform Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Umlagerungen - Wie, wo, oder SQL? Arbeitsabläufe in JTL-Wawi 2
Neu SQL Server Update von 2014 auf 2019 oder Neuinstallation? Installation von JTL-Wawi 4
Neu SQL: img alt Tags setzen User helfen Usern - Fragen zu JTL-Wawi 2
In Diskussion Abfrage auf Wert bei allen Artikelpositionen nicht möglich? Gelöste Themen in diesem Bereich 12
Neu Abfrage per Erweiterter Eigenschaft zu Lieferstatus aller Bestellungen eines Kunden User helfen Usern - Fragen zu JTL-Wawi 0
Neu Artikel wird nach Auswahl der Variante nicht mehr angezeigt JTL-Shop - Fehler und Bugs 3
Neu Artikel- und Versandgewicht bei Stücklisten wird nicht nachberechnet JTL-Version 1.8.12.2 JTL-Wawi - Fehler und Bugs 4
Neu Amazon Lister 2.0 ...ist erforderlich, wird aber nicht bereitgestellt. Amazon-Lister - Fehler und Bugs 2
Neu DHL Warenpost wird zu DHL Kleinpaket JTL-ShippingLabels - Ideen, Lob und Kritik 24
Neu Multishop: Russisch in WAWI - Kategorie-Seite wird nicht angezeigt JTL-Wawi - Fehler und Bugs 3
Kategoriebaum: Artikel wird in allen Kategorien angezeigt JTL-Wawi 1.9 1
Gelöst Anbindung POS an Server wird verweigert Verbindung nicht möglich. Einrichtung / Updates von JTL-POS 4
Bug: "Angebot automatisch einstellen" Option bei Vorlagen eBay wird automatisch deaktiviert JTL-Wawi 1.9 1
Neu Nach Abbruch von "Auftrag anlegen" wird anderes Programm angezeigt Arbeitsabläufe in JTL-Wawi 2
Otto angebunden - Versandstatus wird nicht übertragen Otto.de - Anbindung (SCX) 2
Neu JTL Server bleibt bei "Wird gestartet" hängen Einrichtung / Updates von JTL-POS 1
Neu Shopify importiert Zahlungsart PayPay-Express welche aber inaktiv angezeigt wird Shopify-Connector 0
Neu Lieferstatus wird nicht übertragen Shopware-Connector 0
Neu Nach Update von PayPal Checkout wird PayPal Zahlungsart entfernt Plugins für JTL-Shop 4
Neu FBA Anlieferung aus der JTL-Wawi heraus --> Firmenname in der Absenderadresse wird nur noch als "-" dargestellt Amazon-Anbindung - Fehler und Bugs 1
Neu Artikel wird in der der Detailbeschreibung nicht angezeigt Allgemeine Fragen zu JTL-Shop 0
Neu Warenkorb wird nicht angezeigt Templates für JTL-Shop 1
Neu Klarna Bestellungen wird vom JTL shop 5 nicht abgeschlossen JTL-Shop - Fehler und Bugs 2
Neu Bestellung wird aus dem Shop nicht an Wawi übertagen... JTL-Wawi - Fehler und Bugs 10
Kommissionierte Ware wird von Pickliste gelöscht Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Rechnung per Mail - Anhang (Rechnung) wird nicht erzeugt. JTL-Wawi 1.9 2
Neu Unter Mailen wird die falsche Auftragsvorlage angehängt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Retoure wird im Kassenabschluss nicht angezeigt JTL-POS - Fehler und Bugs 1
Neu Bestellstatus wird nicht aktualisiert Shopware-Connector 2
Neu zzgl. Versand wird nicht angezeigt. Gelöste Themen in diesem Bereich 4
Trackinglink in Mail wird mit kompletter Adresse angezeigt JTL-Wawi 1.7 2
Neu Artikel nicht auf Pickliste trotz Bestand - Auftrag wird teilgeliefert JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu Checkbox Datenschutzerklärung wird nicht angezeigt JTL-Shop - Fehler und Bugs 1

Ähnliche Themen