große CSV durchsuchen?

13/08/2008 - 11:05 von Klaus Mayer | Report spam
Hallo,

ich hab 'ne alte DB unter Novell-DOS, mit deren Daten zyklisch eine
MSSQL-2005-DB geupdatet wird.
Mein Programm macht z.Zt. folgendes:
- Zugriff auf alte DB mittels OLEDB
- Datensatz aus DB-Datei lesen
- Daten umformatieren, Insertstring zusammenbauen
- Insert mit IF NOT EXISTS an SQL-Server übergeben
Der Server ist bereits mit Stored Procedures und Indizes optimiert und
ich erreiche ca. 400 Records/s.
Bei ca. 40 Mio Datensàtzen aus 7 Dateien dauert mir dieser Vergleich
immer noch zu lange.
Nun kam mir der Gedanke, auf dem ausführenden Client bereits eine
Vorauswahl der Datensàtze zu machen.
Ich habe pro Tabelle zwischen 2-4 Indexfelder. Würde es Sinn machen,
alle bereits übertragenen ID's pro DB-Datei in CSV's zu schreiben, und
diese dann erst zu durchsuchen und, wenn nicht vorhanden, dann erst
den kompletten Insertstring zu generieren und zu übertragen? Wie kann
ich eine CSV schnell durchsuchen (bei einem Maximum von 23 Mio
Datensàtzen)?

Für Eure Tipps dankend

Klaus
 

Lesen sie die antworten

#1 Peter Fleischer
13/08/2008 - 11:56 | Warnen spam
"Klaus Mayer" schrieb im Newsbeitrag
news:

ich hab 'ne alte DB unter Novell-DOS, mit deren Daten zyklisch eine
MSSQL-2005-DB geupdatet wird.
Mein Programm macht z.Zt. folgendes:
- Zugriff auf alte DB mittels OLEDB
- Datensatz aus DB-Datei lesen
- Daten umformatieren, Insertstring zusammenbauen
- Insert mit IF NOT EXISTS an SQL-Server übergeben
Der Server ist bereits mit Stored Procedures und Indizes optimiert und
ich erreiche ca. 400 Records/s.
Bei ca. 40 Mio Datensàtzen aus 7 Dateien dauert mir dieser Vergleich
immer noch zu lange.
Nun kam mir der Gedanke, auf dem ausführenden Client bereits eine
Vorauswahl der Datensàtze zu machen.
Ich habe pro Tabelle zwischen 2-4 Indexfelder. Würde es Sinn machen,
alle bereits übertragenen ID's pro DB-Datei in CSV's zu schreiben, und
diese dann erst zu durchsuchen und, wenn nicht vorhanden, dann erst
den kompletten Insertstring zu generieren und zu übertragen? Wie kann
ich eine CSV schnell durchsuchen (bei einem Maximum von 23 Mio
Datensàtzen)?



Hi Klaus,
ich würde mit einem Bulk Insert die alte DB in den Datenbakserver kopieren
und dann dort ein Update ausführen.

Viele Gruesse

Peter

Ähnliche fragen