Hallo,
ich hoffe Ihr könnt mir helfen.
Ich habe eine Textdatei in Tabellenform welche immer eine einheitliche Struktur hat. Dazu eine Datenbanktabelle einer SQL Server DB im Netzwerk, deren Struktur ich an die Textfile angepaßt habe.
Jetzt mein Problem. Die Textfile ist ca. 10 MB groß, es sind letztlich ca. 60.000 Datensätze für die Tabelle. Ich habe über Visual BAsic 6.0 eine Einleseprozedur geschrieben, welche <pre>
- einen Recordset auf die Tabelle öffnet
- für jede Zeile der Textfile (also jeden Datensatz) einen Record hinzufügt (Addnew) und füllt (rs!Feld1 = Mid(zeile,34,6), ...)
- Wenn alle Felder belegt sind, mit Update die DB aktualisiert.
</pre>
Nur, das dauert extrem lange, ca. 2 Stunden! Und es kommen noch Dateien, die 5mal so groß sind.
An der Datenmenge kann es nicht liegen: Wenn die Textfile übers Netz von einem Rechner auf den anderen kopiere, dann geht das in Sekundenschnelle.
Wie kriege ich das schneller hin?
Vielleicht liegt der Schlüssel zur Lösung des Problems darin, die Datei mit einem Mal zum Server zu kopieren und von dort aus erst die DB zu füllen.
Vielleicht mittele einer Stored Procedure?
Hat irgendjemand irgend einen Tipp oder Anregung für mich?
Danke
Steffen
ich hoffe Ihr könnt mir helfen.
Ich habe eine Textdatei in Tabellenform welche immer eine einheitliche Struktur hat. Dazu eine Datenbanktabelle einer SQL Server DB im Netzwerk, deren Struktur ich an die Textfile angepaßt habe.
Jetzt mein Problem. Die Textfile ist ca. 10 MB groß, es sind letztlich ca. 60.000 Datensätze für die Tabelle. Ich habe über Visual BAsic 6.0 eine Einleseprozedur geschrieben, welche <pre>
- einen Recordset auf die Tabelle öffnet
- für jede Zeile der Textfile (also jeden Datensatz) einen Record hinzufügt (Addnew) und füllt (rs!Feld1 = Mid(zeile,34,6), ...)
- Wenn alle Felder belegt sind, mit Update die DB aktualisiert.
</pre>
Nur, das dauert extrem lange, ca. 2 Stunden! Und es kommen noch Dateien, die 5mal so groß sind.
An der Datenmenge kann es nicht liegen: Wenn die Textfile übers Netz von einem Rechner auf den anderen kopiere, dann geht das in Sekundenschnelle.
Wie kriege ich das schneller hin?
Vielleicht liegt der Schlüssel zur Lösung des Problems darin, die Datei mit einem Mal zum Server zu kopieren und von dort aus erst die DB zu füllen.
Vielleicht mittele einer Stored Procedure?
Hat irgendjemand irgend einen Tipp oder Anregung für mich?
Danke
Steffen
Comment