1.8.10.0 - SQL-Job Performance-Optimierung

xadoX

Sehr aktives Mitglied
11. September 2012
659
62
Wir sind von der 1.5.55.0 auf die 1.8.10.0 gewechselt und haben nun starke Performanceeinbrüche in folgenden Bereichen:

WMS Mobile:
Laden der Artikel beim Einlagerungsprozess / 1.5.55.0 = 1 Sekunde, 1.8.10.0 = 6-7 Sekunden
Laden der Artikel in der Sammelumlagerung / 1.5.55.0 = 1 Sekunde, 1.8.10.0 = 6-7 Sekunden
Laden der Artikel in der Artikelübersicht / 1.5.55.0 = 1 Sekunde, 1.8.10.0 = 6-7 Sekunden

JTL Wawi:
Artikelsuche im Reiter Artikel mit % oder enthält / 1.5.55.0 = 6-7 Sekunden, 1.8.10.0 = Timeout
Artikel auf Einkaufsliste setzen / 1.5.55.0 = 1 Sekunde, 1.8.10.0 = 7-8 Sekunden

Ich habe dazu diverse Tickets offen. Mir wurde empfohlen die Performance-Optimierung durchzuführen. Die wurde zwar nach dem Update auch durchgeführt, aber schaden kann das ja nicht.
Ich würde diese Optimierung gerne 1x pro Nacht als SQL-Job laufen lassen. Kann hier jemand die Befehle dazu posten?
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.617
794
Man bräuchte zinächst mal mehr Infos.

Server / JTL gehostet oder eigener Server?
Welchen SQL Server und Lizenz habt ihr?
Welche Datenbankgröße vorher / nachher?
Wurde der Server auch entsprechend der neuen Version schon optimiert / defragmentiert / etc.?

Es gibt hier im Forum schon einige Themen dazu, die auch ausführlich behandelt wurden.
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.617
794
Das ist die einfache Optimierung, da gibt es noch weit aus mehr Möglichkeiten, kürzlich im Forum diskutiert.
(Tabellen defragmentieren)
 

xadoX

Sehr aktives Mitglied
11. September 2012
659
62
Windows Server 2019 Standard, Microsoft SQL Server 2019 Standard

Dell PowerEdge R640 Server
2x Intel Xeon Gold 6136 3,0GHz
10x 480GB SSD-SATA Leseoptimiert 6 Gbit/s 512 2,5"-Hot-Plug-AG-Laufwerk im Raid 5
12x 32 GB RDIMM, 3200 MT/s, Dual Rank

Datenbankgröße vorher/nachher: 190gb -> 230gb

SQL-Jobs, die bisher 1x pro Nacht laufen:


SQL:
USE eazybusiness
EXECUTE sp_MSforeachtable 'SET QUOTED_IDENTIFIER ON; ALTER INDEX ALL ON ? REBUILD  WITH (FILLFACTOR = 80, PAD_INDEX = ON, MAXDOP = 0); UPDATE STATISTICS ? WITH FULLSCAN;'--DATA_COMPRESSION = PAGE for HDD und  für SSD NOT DATA_COMPRESSION Or waitstate check, compress reduce io but increase CPU time
DELETE dbo.toptions WHERE toptions.cKey = 'letzte Index Defragmentierung';

SQL:
EXEC sp_updatestats;
EXEC dbo.spOptimieren;
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.617
794
Das "Aufräumen" bringt meistens nur im ersten Schritt viel, man muss aber grundsätzlich seine Hausaufgaben machen!

Sucht doch endlich mal im Forum nach optimaler SQL Datenbank-Einrichtung, da geht es um Verteilung der TEMPs etc. auf mehreren schnellen SSDs, in Verbindung mit optimaler Konfiguration bringt das am meisten.
Sollte man sich mit Konfig schwer tun, dann lasst es machen ... ansonsten habt ihr einen Flaschenhals.
 

forumjtlolshopag

Sehr aktives Mitglied
6. Juni 2018
807
235
Jo klar, es geht nur darum noch ein kleines bisschen mehr Performance rauszukitzeln. Gerade wenn die Datenbank als solches schon ein gewisses Alter hat ;)
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.617
794
Eben, dann die Verteilung der TEMPs und Konfigs anschauen, zudem die Platten prüfen, es gibt sehr schnelle SSDs die am meisten bewirken.
Datenbank aufräumen ist das eine, der größte Hebel aber was anderes.
 

xadoX

Sehr aktives Mitglied
11. September 2012
659
62
Dann müssen wir das auch mal bei uns probieren. Lasst ihr das jetzt täglich Abends durchlaufen?
Meine Freude von gestern ist heute bereits wieder verflogen. Die Performance der Artikelsuche ist nun wieder genauso schlecht wie zuvor.

@wawi-dl vielen Dank, dass du mir den Beitrag hier verlinkt hast.
Unser Server wurde nach den Vorgaben von JTL (mehrere Temp, Diff, Data auf separate Platten) und nach dieser Anleitung aufgesetzt:
https://www.jtl-software.de/blog/loesungen-von-jtl/optimale-einrichtung-der-sql-datenbank

Dass die Suche gestern nach Ausführung der Defragmentierung kurzzeitig so schnell war bestätigt ja den Verdacht, dass es eher ein Datenbankproblem ist.
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.617
794
SQL Server sind komplex, wenn man sich hier nicht auskennt, sollte man jemand dazu holen, gerade bei dieser Größe.
Man kann sich mit den Vorgaben von JTL auch schnell ins Knie schießen!
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.851
556
Windows Server 2019 Standard, Microsoft SQL Server 2019 Standard

Dell PowerEdge R640 Server
2x Intel Xeon Gold 6136 3,0GHz
10x 480GB SSD-SATA Leseoptimiert 6 Gbit/s 512 2,5"-Hot-Plug-AG-Laufwerk im Raid 5
12x 32 GB RDIMM, 3200 MT/s, Dual Rank
@xadoX
Nur so als Interesse (Hat ja nichts mit der eigentlichen Frage zu tun):
Wird die Maschine mit 384GB RAM und 4,32 TB nur für eine Instanz genutzt oder laufen da mehrere Wawi's?
...oder stellt das System noch ganz andere Dienste bereit (AD oder so)?
 

xadoX

Sehr aktives Mitglied
11. September 2012
659
62
@xadoX
Nur so als Interesse (Hat ja nichts mit der eigentlichen Frage zu tun):
Wird die Maschine mit 384GB RAM und 4,32 TB nur für eine Instanz genutzt oder laufen da mehrere Wawi's?
...oder stellt das System noch ganz andere Dienste bereit (AD oder so)?
Da läuft nur eine Instanz der Wawi drauf. Auch keine anderen System sind installiert. Wir wollten einen starken Server ausschließlich für JTL.
 

xadoX

Sehr aktives Mitglied
11. September 2012
659
62
Ich frage mich ob die Indizes für diese Art von Selects korrekt erstellt wurden.
Kannst du mal die SQL-Query hier posten, die an den Server von der Anfrage geschickt wird?
Klar, hier der SQL, der da ausgeführt wird:


SQL:
exec sp_executesql N'SELECT TOP (128)
    [Project5].[kArtikel] AS [kArtikel],
    [Project5].[Zustand] AS [Zustand],
    [Project5].[kVaterArtikel] AS [kVaterArtikel],
    [Project5].[kStueckliste] AS [kStueckliste],
    [Project5].[kArtikelForKategorieArtikel] AS [kArtikelForKategorieArtikel],
    [Project5].[Artikelnummer] AS [Artikelnummer],
    [Project5].[Sortiernummer] AS [Sortiernummer],
    [Project5].[Artikelname] AS [Artikelname],
    [Project5].[Labels] AS [Labels],
    [Project5].[Einheit] AS [Einheit],
    [Project5].[EAN] AS [EAN],
    [Project5].[Herkunftsland] AS [Herkunftsland],
    [Project5].[UNNUmmer] AS [UNNUmmer],
    [Project5].[cHan] AS [cHan],
    [Project5].[Gefahrennummer] AS [Gefahrennummer],
    [Project5].[ISBN] AS [ISBN],
    [Project5].[ASIN] AS [ASIN],
    [Project5].[TaricCode] AS [TaricCode],
    [Project5].[UPC] AS [UPC],
    [Project5].[Hersteller] AS [Hersteller],
    [Project5].[Lieferstatus] AS [Lieferstatus],
    [Project5].[Breite] AS [Breite],
    [Project5].[Hoehe] AS [Hoehe],
    [Project5].[Laenge] AS [Laenge],
    [Project5].[Erstelldatum] AS [Erstelldatum],
    [Project5].[Bearbeitungsdatum] AS [Bearbeitungsdatum],
    [Project5].[Bearbeiter] AS [Bearbeiter],
    [Project5].[EinkaufspreisDurchschnittNetto] AS [EinkaufspreisDurchschnittNetto],
    [Project5].[cLagerfuehrungaktiv] AS [cLagerfuehrungaktiv],
    [Project5].[EinkaufspreisLetzerEinkauf] AS [EinkaufspreisLetzerEinkauf],
    [Project5].[DatumLetzerEinkauf] AS [DatumLetzerEinkauf],
    [Project5].[VerkaufspreisNetto] AS [VerkaufspreisNetto],
    [Project5].[UVP] AS [UVP],
    [Project5].[Gewinn] AS [Gewinn],
    [Project5].[GewinnInProzent] AS [GewinnInProzent],
    [Project5].[PreisAmazon] AS [PreisAmazon],
    [Project5].[PreisEbay] AS [PreisEbay],
    [Project5].[Sonderpreis] AS [Sonderpreis],
    [Project5].[GrundpreisWert] AS [GrundpreisWert],
    [Project5].[Grundpreiseinheit] AS [Grundpreiseinheit],
    [Project5].[Masseinheit] AS [Masseinheit],
    [Project5].[Gewicht] AS [Gewicht],
    [Project5].[Versandgewicht] AS [Versandgewicht],
    [Project5].[BestandGesamt] AS [BestandGesamt],
    [Project5].[BestandEigen] AS [BestandEigen],
    [Project5].[BestandImZulauf] AS [BestandImZulauf],
    [Project5].[BestandAufEinkaufsliste] AS [BestandAufEinkaufsliste],
    [Project5].[BestandInAuftraegen] AS [BestandInAuftraegen],
    [Project5].[BestandVerfuegbar] AS [BestandVerfuegbar],
    [Project5].[nHatMindestbestand] AS [nHatMindestbestand],
    [Project5].[MindestAbnahmemenge] AS [MindestAbnahmemenge],
    [Project5].[Abnahmeintervall] AS [Abnahmeintervall],
    [Project5].[BestandInAmazonAngeboten] AS [BestandInAmazonAngeboten],
    [Project5].[cIstAufPreisliste] AS [cIstAufPreisliste],
    [Project5].[IstStueckliste] AS [IstStueckliste],
    [Project5].[cIstAktiv] AS [cIstAktiv],
    [Project5].[cIstTopArtikel] AS [cIstTopArtikel],
    [Project5].[cIstNeu] AS [cIstNeu],
    [Project5].[IstStuecklistenkomponente] AS [IstStuecklistenkomponente],
    [Project5].[nIstMHD] AS [nIstMHD],
    [Project5].[nIstCharge] AS [nIstCharge],
    [Project5].[cIstSeriennummer] AS [cIstSeriennummer],
    [Project5].[cIstStueckzahlteilbar] AS [cIstStueckzahlteilbar],
    [Project5].[cIstUeberverkaufMoeglich] AS [cIstUeberverkaufMoeglich],
    [Project5].[nIstVarkombiVater] AS [nIstVarkombiVater],
    [Project5].[nIstVarkombikind] AS [nIstVarkombikind],
    [Project5].[nIstFuerBestellvorschlagGesperrt] AS [nIstFuerBestellvorschlagGesperrt],
    [Project5].[nShopAktiv] AS [nShopAktiv],
    [Project5].[nVPE] AS [nVPE],
    [Project5].[EBayBestand] AS [EBayBestand],
    [Project5].[VerkaufspreisBrutto] AS [VerkaufspreisBrutto],
    [Project5].[ZustandName] AS [ZustandName],
    [Project5].[Anmerkung] AS [Anmerkung],
    [Project5].[Lieferant] AS [Lieferant],
    [Project5].[nBeschaffungszeitAutomatisch] AS [nBeschaffungszeitAutomatisch],
    [Project5].[BeschaffungszeitManuell] AS [BeschaffungszeitManuell],
    [Project5].[Beschreibung] AS [Beschreibung],
    [Project5].[ErscheintAm] AS [ErscheintAm],
    [Project5].[Kurzbeschreibung] AS [Kurzbeschreibung],
    [Project5].[Serie] AS [Serie],
    [Project5].[Steuerklasse] AS [Steuerklasse],
    [Project5].[Warengruppe] AS [Warengruppe],
    [Project5].[ZusaetzlicheBearbeitungszeit] AS [ZusaetzlicheBearbeitungszeit],
    [Project5].[Versandklasse] AS [Versandklasse],
    [Project5].[FfnAktiv] AS [FfnAktiv],
    [Project5].[FfnEigen] AS [FfnEigen],
    [Project5].[JTLFPID] AS [JTLFPID],
    [Project5].[ReserviertGesamt] AS [ReserviertGesamt],
    [Project5].[AmazonFnsku] AS [AmazonFnsku],
    [Project5].[Puffer] AS [Puffer],
    [Project5].[nSeriennummernVerfolgung] AS [nSeriennummernVerfolgung],
    [Project5].[MetaDescription] AS [MetaDescription],
    [Project5].[TitleTag] AS [TitleTag],
    [Project5].[MetaKeywords] AS [MetaKeywords],
    [Project5].[ZustandSprache] AS [ZustandSprache],
    [Project5].[kFirma] AS [kFirma],
    [Project5].[nMidestbestand] AS [nMidestbestand]
    FROM ( SELECT
        [Extent1].[kArtikel] AS [kArtikel],
        [Extent1].[Zustand] AS [Zustand],
        [Extent1].[kVaterArtikel] AS [kVaterArtikel],
        [Extent1].[kStueckliste] AS [kStueckliste],
        [Extent1].[kArtikelForKategorieArtikel] AS [kArtikelForKategorieArtikel],
        [Extent1].[Artikelnummer] AS [Artikelnummer],
        [Extent1].[Sortiernummer] AS [Sortiernummer],
        [Extent1].[Artikelname] AS [Artikelname],
        [Extent1].[Labels] AS [Labels],
        [Extent1].[Einheit] AS [Einheit],
        [Extent1].[EAN] AS [EAN],
        [Extent1].[Herkunftsland] AS [Herkunftsland],
        [Extent1].[UNNUmmer] AS [UNNUmmer],
        [Extent1].[cHan] AS [cHan],
        [Extent1].[Gefahrennummer] AS [Gefahrennummer],
        [Extent1].[ISBN] AS [ISBN],
        [Extent1].[ASIN] AS [ASIN],
        [Extent1].[TaricCode] AS [TaricCode],
        [Extent1].[UPC] AS [UPC],
        [Extent1].[Hersteller] AS [Hersteller],
        [Extent1].[Lieferstatus] AS [Lieferstatus],
        [Extent1].[Breite] AS [Breite],
        [Extent1].[Hoehe] AS [Hoehe],
        [Extent1].[Laenge] AS [Laenge],
        [Extent1].[Erstelldatum] AS [Erstelldatum],
        [Extent1].[Bearbeitungsdatum] AS [Bearbeitungsdatum],
        [Extent1].[Bearbeiter] AS [Bearbeiter],
        [Extent1].[EinkaufspreisDurchschnittNetto] AS [EinkaufspreisDurchschnittNetto],
        [Extent1].[cLagerfuehrungaktiv] AS [cLagerfuehrungaktiv],
        [Extent1].[EinkaufspreisLetzerEinkauf] AS [EinkaufspreisLetzerEinkauf],
        [Extent1].[DatumLetzerEinkauf] AS [DatumLetzerEinkauf],
        [Extent1].[VerkaufspreisNetto] AS [VerkaufspreisNetto],
        [Extent1].[UVP] AS [UVP],
        [Extent1].[Gewinn] AS [Gewinn],
        [Extent1].[GewinnInProzent] AS [GewinnInProzent],
        [Extent1].[PreisAmazon] AS [PreisAmazon],
        [Extent1].[PreisEbay] AS [PreisEbay],
        [Extent1].[Sonderpreis] AS [Sonderpreis],
        [Extent1].[GrundpreisWert] AS [GrundpreisWert],
        [Extent1].[Grundpreiseinheit] AS [Grundpreiseinheit],
        [Extent1].[Masseinheit] AS [Masseinheit],
        [Extent1].[Gewicht] AS [Gewicht],
        [Extent1].[Versandgewicht] AS [Versandgewicht],
        [Extent1].[BestandGesamt] AS [BestandGesamt],
        [Extent1].[BestandEigen] AS [BestandEigen],
        [Extent1].[BestandImZulauf] AS [BestandImZulauf],
        [Extent1].[BestandAufEinkaufsliste] AS [BestandAufEinkaufsliste],
        [Extent1].[BestandInAuftraegen] AS [BestandInAuftraegen],
        [Extent1].[BestandVerfuegbar] AS [BestandVerfuegbar],
        [Extent1].[nHatMindestbestand] AS [nHatMindestbestand],
        [Extent1].[MindestAbnahmemenge] AS [MindestAbnahmemenge],
        [Extent1].[Abnahmeintervall] AS [Abnahmeintervall],
        [Extent1].[BestandInAmazonAngeboten] AS [BestandInAmazonAngeboten],
        [Extent1].[cIstAufPreisliste] AS [cIstAufPreisliste],
        [Extent1].[IstStueckliste] AS [IstStueckliste],
        [Extent1].[cIstAktiv] AS [cIstAktiv],
        [Extent1].[cIstTopArtikel] AS [cIstTopArtikel],
        [Extent1].[cIstNeu] AS [cIstNeu],
        [Extent1].[IstStuecklistenkomponente] AS [IstStuecklistenkomponente],
        [Extent1].[nIstMHD] AS [nIstMHD],
        [Extent1].[nIstCharge] AS [nIstCharge],
        [Extent1].[cIstSeriennummer] AS [cIstSeriennummer],
        [Extent1].[cIstStueckzahlteilbar] AS [cIstStueckzahlteilbar],
        [Extent1].[cIstUeberverkaufMoeglich] AS [cIstUeberverkaufMoeglich],
        [Extent1].[nIstVarkombiVater] AS [nIstVarkombiVater],
        [Extent1].[nIstVarkombikind] AS [nIstVarkombikind],
        [Extent1].[nIstFuerBestellvorschlagGesperrt] AS [nIstFuerBestellvorschlagGesperrt],
        [Extent1].[nShopAktiv] AS [nShopAktiv],
        [Extent1].[nVPE] AS [nVPE],
        [Extent1].[EBayBestand] AS [EBayBestand],
        [Extent1].[VerkaufspreisBrutto] AS [VerkaufspreisBrutto],
        [Extent1].[ZustandName] AS [ZustandName],
        [Extent1].[Anmerkung] AS [Anmerkung],
        [Extent1].[Lieferant] AS [Lieferant],
        [Extent1].[nBeschaffungszeitAutomatisch] AS [nBeschaffungszeitAutomatisch],
        [Extent1].[BeschaffungszeitManuell] AS [BeschaffungszeitManuell],
        [Extent1].[Beschreibung] AS [Beschreibung],
        [Extent1].[ErscheintAm] AS [ErscheintAm],
        [Extent1].[Kurzbeschreibung] AS [Kurzbeschreibung],
        [Extent1].[Serie] AS [Serie],
        [Extent1].[Steuerklasse] AS [Steuerklasse],
        [Extent1].[Warengruppe] AS [Warengruppe],
        [Extent1].[ZusaetzlicheBearbeitungszeit] AS [ZusaetzlicheBearbeitungszeit],
        [Extent1].[Versandklasse] AS [Versandklasse],
        [Extent1].[FfnAktiv] AS [FfnAktiv],
        [Extent1].[FfnEigen] AS [FfnEigen],
        [Extent1].[JTLFPID] AS [JTLFPID],
        [Extent1].[ReserviertGesamt] AS [ReserviertGesamt],
        [Extent1].[AmazonFnsku] AS [AmazonFnsku],
        [Extent1].[Puffer] AS [Puffer],
        [Extent1].[nSeriennummernVerfolgung] AS [nSeriennummernVerfolgung],
        [Extent1].[MetaDescription] AS [MetaDescription],
        [Extent1].[TitleTag] AS [TitleTag],
        [Extent1].[MetaKeywords] AS [MetaKeywords],
        [Extent1].[ZustandSprache] AS [ZustandSprache],
        [Extent1].[kFirma] AS [kFirma],
        [Extent1].[nMidestbestand] AS [nMidestbestand]
        FROM [ArtikelVerwaltung].[vArtikelliste] AS [Extent1]
        WHERE ([Extent1].[ZustandSprache] = @p__linq__0) AND ([Extent1].[kFirma] = @p__linq__1) AND ( EXISTS (SELECT
            1 AS [C1]
            FROM ( SELECT DISTINCT
                [UnionAll1].[kArtikel] AS [C1]
                FROM  (SELECT
                    [Extent2].[kArtikel] AS [kArtikel]
                    FROM [dbo].[tArtikelSpeicher] AS [Extent2]
                    WHERE ([Extent2].[nID] IN (cast(0 as tinyint), cast(1 as tinyint), cast(2 as tinyint), cast(3 as tinyint), cast(8 as tinyint), cast(5 as tinyint))) AND (( CAST(PATINDEX(@p__linq__2, [Extent2].[cNummer]) AS int)) > 0)
                UNION ALL
                    SELECT
                    [Extent3].[kArtikel] AS [kArtikel]
                    FROM [dbo].[tArtikel] AS [Extent3]
                    WHERE ( CAST(PATINDEX(@p__linq__3, [Extent3].[cSuchbegriffe]) AS int)) > 0) AS [UnionAll1]
            )  AS [Distinct1]
            WHERE [Distinct1].[C1] = [Extent1].[kArtikel]
        )) AND (''Y'' = [Extent1].[cIstAktiv]) AND (1 <> [Extent1].[nIstVarkombikind]) AND ([Extent1].[Zustand] = @p__linq__4) AND ([Extent1].[IstStueckliste] <> 1)
    )  AS [Project5]
    ORDER BY [Project5].[kArtikel] ASC option(recompile,maxdop 1);',N'@p__linq__0 int,@p__linq__1 int,@p__linq__2 nvarchar(4000),@p__linq__3 nvarchar(4000),@p__linq__4 int',@p__linq__0=1,@p__linq__1=1,@p__linq__2=N'hummel%%',@p__linq__3=N'hummel%%',@p__linq__4=1
 
Ähnliche Themen
Titel Forum Antworten Datum
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bestellungen werden verzögert oder nicht gepullt – Ursache: Zeitzonen-Filter im SQL des WooCommerce-Connectors WooCommerce-Connector 0
Neu SQL Worker.tStatus - Bedeutung von nStatus? JTL Ameise - Eigene Exporte 2
Neu Suche Servicepartner für SQL-Abfrage Dienstleistung, Jobs und Ähnliches 2
Neu askJan | Neuer KI-Assistent für JTL-Wawi - schnelle, effiziente und transparente KI-Datenanalyse - ohne SQL! Dienstleistung, Jobs und Ähnliches 41
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Neu Wie lässt sich der Lieferstatus von Aufträgen per SQL abfragen? User helfen Usern - Fragen zu JTL-Wawi 8
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 21
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 12
Neu SaaS Connector – product.push Performance-Problem bei Shopware 6.6 Shopware-Connector 1
Neu JTL-Wawi REST-API – Performance & Monitoring JTL-Ameise - Ideen, Lob und Kritik 3
Performance lokaler Client JTL-Wawi 1.11 26

Ähnliche Themen