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

Thomas_S

Sehr aktives Mitglied
2. Oktober 2012
730
123
50226 Frechern
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
 

Thomas_S

Sehr aktives Mitglied
2. Oktober 2012
730
123
50226 Frechern
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.

Sehr aktives Mitglied
15. Februar 2023
166
65
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
1.150
443
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
 

Thomas_S

Sehr aktives Mitglied
2. Oktober 2012
730
123
50226 Frechern
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
4.138
1.055
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
1.150
443
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
CSV Exportvorlage - SQL Abfrage Eigenes Feld JTL-Wawi 2.0 4
Neu Dedicated SQL Server am Limit Merkmale Betrieb / Pflege von JTL-Shop 1
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 2
welche Microsoft SQL Server Version läuft am stabilsten? JTL-Wawi 2.0 2
Neu MS Server und MS SQL Installation von JTL-Wawi 5
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 15
Wawi Meldung SQL Servicepack zu installieren - aber welches? Update SQL2022 CU24 nicht möglich JTL-Wawi 1.11 6
Keine Rückmeldung in JTL Wawi sobald SQL Server Memory durch Database Cache ausgeslastet ist JTL-Wawi 2.0 9
Update auf 1.11 verlangt ein Update auf aktuelleren SQL Server JTL-Wawi 1.11 7
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 4
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
Sichtbarkeit in Kategorien wird nicht mehr gespeichert JTL-Wawi 2.0 1
Neu Altes Bild wird einfach nicht gelöscht. DB Eintrag löschen? Betrieb / Pflege von JTL-Shop 0
Neu Wird irgendwo in der Datenbank geloggt welcher WMS-Mobile Benutzer mit dem MDE-Gerät einen Auftrag, bzw. Pickliste gepickt hat? User helfen Usern - Fragen zu JTL-Wawi 1
Name der Versandarten wird im Auftrag sporadisch nicht mehr angezeigt (2.0.3) JTL-Wawi 2.0 2
Neu Nummernkreis Kundennummer wird ignoriert JTL-Wawi - Fehler und Bugs 0
Rechnung wird zu spät erzeugt JTL-Wawi 2.0 1
Neu Hinweis zum Auftrag wird seit Update auf die 1.11 nicht mehr angezeigt JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Skonto wird bei Zahlung setzen nicht berücksichtigt JTL-Wawi 1.11 2
Neu WMS-APP funktioniert nicht - Fehlermeldung: andere Edition wird benötigt JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu ACHTUNG: AB-Preis wird rechtlich falsch ausgegeben Betrieb / Pflege von JTL-Shop 3
Neu DHL Versenden 4.0 Tracking ID wird gekürzt JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu Rechnungskorrektur/Storno wird auf falsches Buchungskonto gebucht JTL-Wawi - Fehler und Bugs 1
Neu AMAZON Anbindung - Bearbeitungszeit - wird nicht an AMAZON Übermittelt Amazon-Anbindung - Ideen, Lob und Kritik 0
Rechnung speichern - WaWi wird geschlossen JTL-Wawi 2.0 4
Neu Status wird immer wieder überschrieben Shopify-Connector 0
Neu Nach Update in Dez 2025 wird TSE Swissbit nicht mehr erkannt JTL-POS - Fehler und Bugs 1
Neu DHL 4.0 Versandschnittstelle wird nicht aufgeführt? JTL-ShippingLabels - Fehler und Bugs 5
Neu Gini Scan & Pay wird zum 1. Juni 2026 eingestellt. Gibt es Alternativen? Plugins für JTL-Shop 8
Amazon Rechnungslayout geändert, per IDU wird trotzdem die alte Vorlage hochgeladen JTL-Wawi 1.9 2
Neu Nach Umstellung DHL Versenden 4.0 wird Kleinpaket nun auf DHL Paket Labeldrucker ausgegeben statt auf Kleinpaketdrucker JTL-ShippingLabels - Fehler und Bugs 18
Brutto-Gesamtbetrag wird (wieder) falsch berechnet - 2.0.1 JTL-Wawi 2.0 34
Neu Zahlung zugewiesen, aber keine Rechnung wird angezeigt User helfen Usern - Fragen zu JTL-Wawi 2
Neu Sendungsnummer in Versandmail wird nicht korrekt befüllt Arbeitsabläufe in JTL-Wawi 1
Neu Versanderweiterung in EU- Länder - Was wird vergessen? Business Jungle 5
Neu 2.0.0: Workflow Queue wird nicht abgearbeitet via API JTL-Wawi 2.0 1
Neu Überverkäufer aktiviert, es wird aber kein Bestand zu Amazon übertragen Amazon-Anbindung - Fehler und Bugs 0

Ähnliche Themen