Datenimport zu langsam

  • Moin Leute,


    ich habe einen Agent geschriben, der Kundendaten(~16.000 Datensätze) aus einer CSV-Datei importieren soll. der Seperator ist ein Semikolon. Leider ist dieser Import einfach zu langsam. Später soll dieser Import nicht nur importieren sondern auch den bestehenden Datenbestand abgleichen. Weiß einer von euch, wie ich das alles beschleunigen kann?


    --------------------CODE----------------------------



    Ärgerlich wenn am Ende des Geldes noch soviel Monat übrig ist...

    • Offizieller Beitrag

    was ist langsam?


    - 16.000 Zeilen
    - 12 Feldinhalte pro Zeile


    Wird die Datei lokal oder auf dem Server importiert?
    Wie lange dauert der Import?
    Woher kommt die Datei (DB2, Oracle, ...)?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • also der gesamte import würde nach meinen berechnungen ca. 8 Stunden dauern. (ohne abgleich nur import) die Datenbank liegt derzeit lokal soll aber auf einen server gestellt werden. Diese CSV-datei wurde aus einer Oracle-Datenbank exportiert.

    Ärgerlich wenn am Ende des Geldes noch soviel Monat übrig ist...

    • Offizieller Beitrag

    habt ihr LEI oder ODBC?, dann geht es direkt im Notes.



    Split ist schonmal eine sehr gute Idee von taurec.


    Gruß
    Dirk

  • so nun hab ich es eingebaut.. aber leider hat es noch immer nicht den erwünschten erfolg erbracht (200 datensäte in 54sekunden)

    Ärgerlich wenn am Ende des Geldes noch soviel Monat übrig ist...

    • Offizieller Beitrag
    Zitat


    Patri schrieb:
    so nun hab ich es eingebaut.. aber leider hat es noch immer nicht den erwünschten erfolg erbracht (200 datensäte in 54sekunden)

    Also ich finde von 8 Stunden auf
    16.000 Datensätze * 54 Sekunden / 200 Datensätze ist 1 Stunde und 12 Minuten.


    Die Verbesserung ist doch super.


    Gruß
    Dirk

  • Frage: ist es vielleicht auch hardware bedingt?


    Mehr Arbeitsspeicher einbauen + schnelleren Prozessor...
    und wenn die daten von einem anderen server geholt werden, der nicht weit weg ist, könnte man die Datenrate auch gleich erhöhen und FiberChanell Kabel benutzen...


  • ja, ist eine verbesserung aber noch immer inakzeptabel. Das muss innerhalb von Minuten wenn nicht sogar Sekunden geschehen.


    Code
    Aspirin schrieb:
    Mehr Arbeitsspeicher einbauen + schnelleren Prozessor...
    und wenn die daten von einem anderen server geholt werden,
    der nicht weit weg ist, könnte man die Datenrate auch gleich erhöhen und FiberChanell Kabel benutzen...


    auch daran habe ich bereits gedacht. Nochmal zum auffruschen. Ich exportiere die Daten aus einer Oracle-Datenbank in eine CSV-Datei die dann bei mir lokal aufm Rechner liegt. Dann will ich sie in eine lokale DB importieren (später mal in eine DB aufm Server) Die CPU- und Speicherauslastung ist fast gleich null. Also kann es an der Hardware nicht liegen. Aber woran liegt es dann?

    Ärgerlich wenn am Ende des Geldes noch soviel Monat übrig ist...

    • Offizieller Beitrag

    in den Sekundenbereich? wirst du es nicht schaffen. deshalb auch die Frage nach LEI und ODBC, dies könnte dann dynamisch die geforderten Datensätze holen.


    Eine CSV-Datei und dann in Sekunden einlesen? Wenn die Infos im Sekundenbereich aktualisiert werden müssen, dann ist CSV definitiv die falsche Datenübergabe-Methode.


    Optimieren könntest du das Script, wenn der ComputeWithForm nicht benötigt werden würde.


    Datei-Operationen sind auch ein Flaschenhals.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein