Hallo Tanja,
ich habe zwei UDF Libraries gefunden, eine von
Safa Rimeh (commercial) und eine von
Richard Kotal (free).
Es ist eine hohe Kunst eine Aufgabenstellung so zu beschreiben, dass die Hilfestellung eines Unbeteiligten keinen schalen Beigeschmack hinterlässt. Bei deinem Problem irritiert mich, dass du zwei Textdateien vergleichen sollst (was man mit drei Unix Text Tools schnell erledigt hat) und diese Dateien im
CSV-Format zu dir gelangen (was bedeutet, dass sie wohl Export-Dateien sind).
Auch weiß ich nicht, ob du diesen Vergleich regelmäßig oder einmalig durchführen willst und wie du das Ergebnis zurückgeben sollst. Ich gehe also einfach weiter davon aus, dass du lediglich ein performantes UPDATE-Statement für Interbase 6 suchst. Für eine optimale Lösung deines Problems müsste man statistische Informationen über deine Daten haben, wie alzaimar versteckt angedeutet hat.
Aber alles in allem sollten zwei mal 1 Mio Datensätze noch kein richtiges Problem darstellen. Um der Ungewissheit des Laufzeitverhaltens zu entgehen, würde ich zwei samples (1% und 5%) erstellen und mit denen die Zeit nehmen. Danach weißt du wie dein UPDATE-Statement skaliert und kannst die Wartezeit für den full set abschätzen und dein performance tuning anpassen.
SQL-Code:
UPDATE tabelle2
SET datum = CURRENT_DATE()
WHERE hash NOT IN (SELECT hash FROM tabelle1)
Freundliche Grüße