![]() |
Re: Datei > 500mb vollständig in RAM laden
[quote="Elvis"]
Zitat:
Es gibt mehrere Möglichkeiten, Daten sehr schnell in einem richtigen DBMS abzulegen. Da ich MSSQL verbunden bin, kann ich nur für diese DB sprechen: Möglichkeit 1 (geht vermutlich für alle DB). Du sammelst die INSERT-Anweisungen in einem String, bis dieser max. 1000 Zeichen lang ist und bläst diese über die Execute-Methode der ADO-Connection zur DB. Möglichkeit 2: Du verwendest BCP.EXE (Bluk Copy Program) von Microsoft. Das ist bei jedem Server dabei. Es handelt sich um ein Kommandozeilentool, das speziell formatierte Textdateien sehr schnell (>10000 Recs per second) reinsaugt. Ich würde #2 nehmen und nur wenn du wirklich Performance brauchst, eine selbstgefrickelte Lösung implementieren. Diese B-Tree-Geschichte war nicht Ohne. |
Re: Datei > 500mb vollständig in RAM laden
Als weitere Alternative wären "external files" zu nennen.
|
Re: Datei > 500mb vollständig in RAM laden
Zitat:
|
Re: Datei > 500mb vollständig in RAM laden
Das ist eine Funktion von IB/FB, bei der man Textdateien als Tabelle ansprechen kann.
|
Re: Datei > 500mb vollständig in RAM laden
:mrgreen: Für local Aktionen scheint mir die Sache mit dem Commandozeilentool geeignet. Passt aber nich zum EndZiel meiner Idee.
Ich habe vor Clienten zu einem Server connecten zu lassen, sich dort einen "job" geben zu lassen, diesen berechenen und das Ergebniss zurück zum Server zuschicken. Jetzt greifen mehrere Clienten (mehr oder weniger) gleichzeitig auf den Server holen sich ihre Jobs und tragen die Resulte ein. Der weg über ADO und eigene FileStreams ist alles nicht passend, hab ich festgestellt wegen der anfallden Datenmege. Also suche ich nach einer Leistungstarken DBMS. Ich denke ein DBMS komprimiert glichzeit. Ich gucke mir grade sie Sache mit IB/FB an. Um ein bisschen mehr Erfahrung zukriegen. |
Re: Datei > 500mb vollständig in RAM laden
Zitat:
Zitat:
Zitat:
|
Re: Datei > 500mb vollständig in RAM laden
Es gibt da ein tolles Buch zum effizienten Umgang mit großen Datenmengen (und anderen tollen Dingen):
![]() Im Übrigen würde selbst bei 1GiB RAM mit höchster Wahrscheinlichkeit nie die gesamte Datei im Speicher landen. Gut, indirekt in den FS-Cache vielleicht, aber sicher nicht im residenten Speicher der Anwendung. :mrgreen: :mrgreen: :mrgreen: Habe die Benachrichtigung mal sicherheitshalber ausgeschalten und packe mir auch gleich meinen Asbestanzug aus :stupid: |
Re: Datei > 500mb vollständig in RAM laden
Ich möchte ergänzen, dass es auch den T-SQL-Befehl
![]() Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz