Base: Datenbanktabelle austauschen, Relationen behalten

Moin! Dies ist zwar meine erste Supportanfrage hier, aber ich bin schon ne Weile dabei, benutze Papyrus seit vermutlich 3.5 (1995?) und bin aktuell bei Autor III.

Nun hab ich ein kleines Datenbank-Problem, wo ich Hilfe benötige.

Es geht um eine Datenbank, die als Basis ca. 16000 Datensätze umfasst. Adressdaten, relativ simpel. Mit diesen Daten (quasi die Primärtabelle) soll in diversen anderen Tabellen gearbeitet werden. Relationen usw - eigentlich kein Problem.

Aber:

Der Datenbestand von 16000 Datensätzen wird extern gepflegt, das Update kommt alle paar Monate in Form einer CSV-Datei - in der alle Daten sind.

Meine erste Idee war: aus den Daten der Primärtabelle jeweils einen eindeutigen Schlüssel berechnen, der sich auch bei einem Austausch der Datensätze neu berechnen lassen sollte. Eine Handvoll Testdatensätze in einer zweiten Tabelle angelegt. Klappt soweit.

Dann wollte ich spaßeshalber mal testen: Primärtabelle löschen, neu einspielen und schauen, ob die Relationen überleben.

Problem: Soweit kam Papyrus nicht mehr. Der Löschversuch der 16000 Datensätze endete mit einem de facto arbeitsunfähigen Programm, dass 99% aller CPU-Ressourcen an sich riss (WinXP, Single-Core Sempron) und sonst nichts erkennbares mehr tut. Hab es dann bei jedem Versuch nach ca. 5-10 Minuten abgebrochen.

Frage 1: Wie realisiere ich grundsätzlich so einen “totalen Datentausch” mit Papyrus? Kann mein Plan gelingen? ^^

Frage 2: Wieso fühlt Papyrus sich da so flott schon so überfordert? Die Operation an sich kann ja nicht so komplex sein - es sind ja kaum Datensätze miteinander verknüpft.

Das Löschen von größeren Datensatzmengen kann in einer älteren Version schon recht heftig lange dauern, das haben wir neulich mal optimiert, da war - bisher keinem aufgefallen - eine rechnerische Ungeschicklichkeit drin, die Zeit kostete.

Einfach mal 'ne Weile laufen lassen. Oder 'ne neuere Version nehmen.