AW: AW: AW: AW: [Allegro] Datenimport & Nachtrag
Thomas Fischer
fischer at sub.uni-goettingen.de
Mi Apr 2 09:06:47 CEST 2008
Hallo Herr Eversberg,
> > ...
> > 4b. Den Datensatz in die
> > Datenbank kopieren und die nötigen Registereinträge erzeugen
> >
> > Ich dachte, dass im Falle b) der letzte Schritt der
> > aufwendigste und mit index identisch ist.
> Aufwendig ja, mit INDEX.EXE identisch nein. Nur die
> _Erzeugung_ der Schlüssel, d.h. die Abarbeitung der
> Parameter, ist identisch, das _Einsortieren_ läuft total
> anders. INDEX.EXE erzeugt ja die Indexdatei neu, das tut es
> seriell nach Vorsortierung des gesamten Materials, während
> alle anderen Programme in den _vorhandenen_ Index einordnen
> müssen, und das ist mit VIEL mehr Daten- und Plattenbewegung
> verbunden, weil nicht seriell möglich, sondern nur mit
> "random access" incl.
> locking usw. Das setzt einer Beschleunigung enge Grenzen.
> > Bei meinem letzten Großimporten (vor zwei Jahren) habe ich
> > die Daten mit index eingelesen und die Datensatznummern mit
> > einer Batchdatei und import (über die Exportparameter)
> > erzeugt; ich hatte gehofft, dass das heute einfacher ginge.
> >
> Nachträglich Nummern erzeugen kann man auch mit FLEX (einfach
> den Satz einlesen und wieder speichern, wenn er keine #00
> hat), aber das ist nicht der ganz große Zeitfaktor.
Aha, ich sehe klarer.
Wenn man also große Mengen von Fremddaten relativ flott in die Datenbank
einspeisen will, gibt es zwei Möglichkeiten:
1. Es soll geprüft werden, ob Versionen der Datensätze schon in der
Datenbank vorhanden sind. Dann wird das Verfahren in Trick 59 beschrieben.
2. Es handelt sich um garantiert neue Datensätze, und die Datenbank kann für
eine Zeit für andere BenuzerInnen gesperrt werden. Dann können die Daten per
index importiert werden, und man muss zusätzlich noch die Satznummern
erzeugen.
Bei beiden Fällen kann man zusätzlich noch den Flex zur Markierung der
Artikel einsetzen, eventuell ergänzt um einen Schritt zum Abfangen von
Sonderfällen (z.B. "A propos").
Ich denke, ich brauche einen Flex für den zweiten Fall, und werde versuchen,
mir einen zu bauen. Wenn jemand schon so etwas hat, wäre ich für Hinweise
dankbar!
Als Alternative könnte ich mir nur vorstellen, dass update so umgeschrieben
wird, dass die Indexeinträge der neuen Datensätze zunächst nicht einsortiert
werden, sondern in der Form einer Index-Zwischendatei gespeichert werden
dann findet man die Datensätze zunächst noch nicht im Register. Erst wenn
alle Datensätze abgearbeitet werden, werden diese Indexdateien in den
Gesamtindex eingemischt.
Ob dieses Verfahren bei einer anderen Setzung als u01 vertretbar ist, ist
mir nicht ganz klar, das Problem wären mehrere Versionen desselben
Datensatzes in den Neudaten.
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro