Andreas Mauf
Mitglied
Servus,
folgende Problemstellung:
Daten einer Textdatei sind mit den Daten aus einer Datenbank zu vergleichen. Es ist zu prüfen ob der Datensatz aus der Textdatei bereits in der Datenbank vorhanden ist und wenn ja welche Werte sich geändert haben. Je nachdem sollen weitere Vorgänge durchgeführt werden.
Ich sehe da spontan zwei Möglichkeiten:
a)
Einlesen aller relevanter Daten der entsprechenden Datenbanktabelle in ein Array. Durchlaufen der Textdatei Zeile für Zeile; jeweils prüfen ob ID bereits im Array und ggf. weitere Spalten prüfen.
Vorteil: Nur eine Datenbankanfrage für alle Vergleiche.
Nachteil: Anzahl der zu vergleichenden Datensätze begrenzt durch Größe des Arbeitsspeichers (für das Array mit den Daten aus der Datenbank).
b)
Durchlaufen der Textdatei Zeile für Zeile. Je Zeile mittels eigener Datenbankabfrage prüfen ob ein Datensatz mit gleicher ID bereits vorhanden.
Vorteil: Schonung des Arbeitsspeichers.
Nachteil: Viele Anfragen an den Datenbankserver in kurzer Zeit.
Was haltet ihr davon? Weitere Vorschläge oder Ergänzungen?
folgende Problemstellung:
Daten einer Textdatei sind mit den Daten aus einer Datenbank zu vergleichen. Es ist zu prüfen ob der Datensatz aus der Textdatei bereits in der Datenbank vorhanden ist und wenn ja welche Werte sich geändert haben. Je nachdem sollen weitere Vorgänge durchgeführt werden.
Ich sehe da spontan zwei Möglichkeiten:
a)
Einlesen aller relevanter Daten der entsprechenden Datenbanktabelle in ein Array. Durchlaufen der Textdatei Zeile für Zeile; jeweils prüfen ob ID bereits im Array und ggf. weitere Spalten prüfen.
Vorteil: Nur eine Datenbankanfrage für alle Vergleiche.
Nachteil: Anzahl der zu vergleichenden Datensätze begrenzt durch Größe des Arbeitsspeichers (für das Array mit den Daten aus der Datenbank).
b)
Durchlaufen der Textdatei Zeile für Zeile. Je Zeile mittels eigener Datenbankabfrage prüfen ob ein Datensatz mit gleicher ID bereits vorhanden.
Vorteil: Schonung des Arbeitsspeichers.
Nachteil: Viele Anfragen an den Datenbankserver in kurzer Zeit.
Was haltet ihr davon? Weitere Vorschläge oder Ergänzungen?