[Allegro] Trick 59: Superschnelles Einspeisen neuer Daten

Sibylle Koczian Sibylle.Koczian at T-Online.de
Di Okt 30 11:13:00 CET 2007


"Bernhard Eversberg" <ev at biblio.tu-bs.de> schrieb:
> 
> Trick 59:  Superschnelles Einspeisen
> 
> Aufgabe: Schnellstmöglich 20.000 oder mehr Datensätze einbringen.
> 
> Warum: Es kommt vor, daß man ohne spürbare Beeinträchtigung des
>         laufenden Betriebs ganz schnell eine größere Menge neuer Daten
>         verfügbar machen will.
> 
> Lösung:
> Falls es genügt, die neuen Daten zunächst über einen oder zwei ganz
> wichtige Schlüssel finden zu können, dann läßt sich etwas machen.
> Eine Index-Erneuerung irgendwann später muß dann aber den Index
> vervollständigen.
> Vorliegen müssen die Daten zuerst einmal als Grunddatei (Typ .ALG)
> oder Externdatei (Typ .ADT).
> Dann kommen zwei Tricks zur Anwendung:
> 
> 1. Es wird eine abgemagerte Indexparameterdatei automatisch erstellt,
>     die nur die ersten zwei ak-Befehle enthält. Diese wird dann statt
>     der normalen geladen, so daß dann neu zu speichernde Daten viel
>     schneller indexiert werden können - die Anzahl der Schlüssel ist
>     nämlich der Haupt-Zeitfaktor beim Abspeichern.
> 
> 2. Das Einlesen geschieht zunächst ohne Speichern mit dem z-Wert 0
>     beim update-Befehl, dann gelangen die Sätze nur in den Offline-
>     speicher. Danach wird mit "save off" gespeichert. Das geht schneller
>     als update mit z-Wert 1, denn dabei wartet das Programm jeweils
>     0.5 Sekunden zwischen zwei Sätzen.
> 

Zusatzfrage: hier findet keine Dublettenprüfung statt (set u010) und die

würde den Geschwindigkeitsvorteil ja auch mindestens teilweise
auffressen 
(richtig?). Dann können aber Primärschlüssel doppelt in der Datenbank 
auftreten, mit Nebenwirkungen, die man evtl. nicht sofort sieht. Gibt's

einen weiteren Trick, die Dubletten hinterher schnell herauszufiltern,
oder 
darf das ganze Verfahren nicht angewendet werden, wenn Dubletten
vorkommen
können? (Gegenstandslos, wenn und nur wenn die Primärschlüssel durch 
automatische Numerierung erzeugt werden.)

Beste Grüße,
Koczian





Mehr Informationen über die Mailingliste Allegro