Import von Aufträgen via tXMLBestellImport Tabelle seit Update sehr träge/langsam

  • Ersteller des Themas Ersteller des Themas lumundi
  • Erstellungsdatum Erstellungsdatum

lumundi

Aktives Mitglied
14. Februar 2017
24
8
Hallo,

wir haben jetzt auf Version 1.11.10 aktualisiert und waren vorher auf 1.10.15.
Jetzt nachdem Update ist der Import über die Tabelle sehr langsam geworden. Während wir vorher 1-2 Sekunden je Import benötigt haben, sind wir jetzt bei 10-15 Sekunden.

Ich habe nachfolgenden SQL Query im Verdacht, da der während des Imports viel und lange läuft.

UPDATE TempLB
SET
TempLB.fLagerbestand = ISNULL(BestBA.fBestand, 0.0) + ISNULL(BestLief.fBestand, 0.0),
TempLB.fVerfuegbar = ISNULL(CASE
WHEN TempLB.nLagerAktiv = 1
THEN ISNULL(BestBA.fBestand, 0.0)
+ ISNULL(BestVirt.fBestand, 0.0)
+ ISNULL(BestLief.fBestand, 0.0)
- ISNULL(BestIA.fInAuftraegen, 0.0)
- ISNULL(BestBA.fBestandGesperrtFuerVerfuegbar, 0.0)
+ ISNULL(BestIA.fUmlagerungGesperrtesLager, 0.0)
ELSE 0.0
END, 0.0),
TempLB.fVerfuegbarGesperrt = ISNULL(BestBA.fBestandGesperrtFuerVerfuegbar, 0.0),
TempLB.fZulauf = ISNULL(BestZ.fZulauf, 0.0) + ISNULL(BestVirt.fZulauf, 0.0),
TempLB.fAufEinkaufsliste = ISNULL(BestEL.fAnzahl, 0.0),
TempLB.dLieferdatum = BestZ.dLieferdatum,
TempLB.fLagerbestandEigen = ISNULL(BestBA.fBestand, 0.0),
TempLB.fInAuftraegen = ISNULL(BestIA.fInAuftraegen, 0.0),
TempLB.fAuslieferungGesperrt = ISNULL(BestBA.fBestandGesperrtFuerAuslieferung, 0.0),
TempLB.fProduktionGesperrt = ISNULL(BestBA.fBestandGesperrtProduktion, 0.0),
TempLB.nUpdated = 1,
TempLB.cDebug = ISNULL(TempLB.cDebug, '') + ' + UPD(1)'
FROM #Lagerbestand AS TempLB
LEFT JOIN Bestand.vBestandBestandsartikel AS BestBA ON BestBA.kArtikel = TempLB.kArtikel
LEFT JOIN Bestand.vBestandLieferanten AS BestLief ON BestLief.kArtikel = TempLB.kArtikel
LEFT JOIN Bestand.vInAuftraegen AS BestIA ON BestIA.kArtikel = TempLB.kArtikel
LEFT JOIN Bestand.vZulauf AS BestZ ON BestZ.kArtikel = TempLB.kArtikel
LEFT JOIN Bestand.vAufEinkaufsliste AS BestEL ON BestEL.kArtikel = TempLB.kArtikel
LEFT JOIN Bestand.vBestandVirtuell AS BestVirt ON BestVirt.kArtikel = TempLB.kArtikel
WHERE TempLB.nArtikelTyp = 0

Habt ihr Ideen dazu?
 

no80

Sehr aktives Mitglied
28. Juni 2023
765
89
Daran hat sich eig nix geändert.
Kannst du uns mal deine XML zeigen ?
 

lumundi

Aktives Mitglied
14. Februar 2017
24
8
hier ein Beispiel. Wir nutzen exakt diese Struktur seit 2017 😉

XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<tBestellungen>
    <tBestellung kFirma="2">
        <cSprache>ger</cSprache>
        <cWaehrung>EUR</cWaehrung>
        <fGuthaben>0.00</fGuthaben>
        <fGesamtsumme>0.00</fGesamtsumme>
        <cBestellNr>TEST-TEST2</cBestellNr>
        <cExterneBestellNr><![CDATA[TST123345-2]]></cExterneBestellNr>
        <cVersandartName/>
        <cVersandInfo/>
        <dVersandDatum/>
        <cTracking/>
        <dLieferDatum/>
        <cKommentar/>
        <cBemerkung/>
        <cZahlungsartName>Rechnung</cZahlungsartName>
        <dBezahltDatum/>
        <fBezahlt>0.00</fBezahlt>
        <twarenkorbpos>
            <cName><![CDATA[Artikel]]></cName>
            <cArtNr><![CDATA[XXXX_XXXXXXX]]></cArtNr>
            <cBarcode>0000000000000</cBarcode>
            <cEinheit/>
            <fPreisEinzelNetto>00,00</fPreisEinzelNetto>
            <fPreis>00.0</fPreis>
            <fMwSt>7</fMwSt>
            <fAnzahl>1</fAnzahl>
            <cPosTyp>standard</cPosTyp>
            <fRabatt>100</fRabatt>
        </twarenkorbpos>
        <tkunde kKunde="000000">
            <cKundenNr>XXX_0000</cKundenNr>
            <cAnrede></cAnrede>
            <cTitel></cTitel>
            <cVorname></cVorname>
            <cNachname><![CDATA[Mustermann]]></cNachname>
            <cFirma><![CDATA[XXXX]]></cFirma>
            <cStrasse><![CDATA[Musterstraße 1]]></cStrasse>
            <cAdressZusatz></cAdressZusatz>
            <cPLZ>00000</cPLZ>
            <cOrt><![CDATA[Musterstadt]]></cOrt>
            <cBundesland></cBundesland>
            <cLand>DE</cLand>
            <cTel/>
            <cMobil/>
            <cFax/>
            <cMail></cMail>
            <cUSTID/>
            <cWWW/>
            <cNewsletter>N</cNewsletter>
            <cHerkunft/>
        </tkunde>
        <tlieferadresse>
            <cAnrede></cAnrede>
            <cVorname><![CDATA[Max]]></cVorname>
            <cNachname><![CDATA[Mustermann]]></cNachname>
            <cTitel></cTitel>
            <cFirma></cFirma>
            <cStrasse><![CDATA[Musterweg 1]]></cStrasse>
            <cAdressZusatz></cAdressZusatz>
            <cPLZ>00000</cPLZ>
            <cOrt><![CDATA[Musterstadt]]></cOrt>
            <cBundesland></cBundesland>
            <cLand>DE</cLand>
            <cTel></cTel>
            <cMobil/>
            <cFax></cFax>
            <cMail></cMail>
        </tlieferadresse>
        <tzahlungsinfo>
            <cBankName/>
            <cBLZ/>
            <cKontoNr/>
            <cKartenNr/>
            <dGueltigkeit/>
            <cCVV/>
            <cKartenTyp/>
            <cInhaber/>
            <cIBAN/>
            <cBIC/>
        </tzahlungsinfo>
    </tBestellung>
</tBestellungen>
 

lumundi

Aktives Mitglied
14. Februar 2017
24
8
Ein neuer Index hat es gelöst:

SQL:
CREATE NONCLUSTERED INDEX [NCI_nGesperrt_kWarenLager] ON [dbo].[tWarenLagerPlatz]
(
    [nGesperrt] ASC
)
INCLUDE([kWarenLager])
 

Ähnliche Themen