`Fortsetzung` 
allegro Systemhandbuch V32

7	Indexieren

7.0	Datenbank-Generierung : Aufgabe und Konzept

Der direkte und schnelle Zugriff auf Datensätze über eine alphabetisch geordnete Liste von Suchbegriffen ist nur möglich, wenn es eine Indexdatei gibt, denn darin stecken diese Listen. Die Indexdatei wird automatisch vom System gepflegt, nur gelegentlich gibt es daran mal etwas zu tun. Davon handelt dieses Kapitel.
Brauchen Sie dieses Kapitel? Im Normalbetrieb nicht, sondern nur wenn Sie sich mit dem Neuaufbau oder der Reorganisation von Datenbanken beschäftigen, also mit Systemverwaltung und Parametrierung. 
Als "Normalverbraucher" können Sie mit dem `ORG-Menü` alle Verwaltungsfunktionen auslösen, die mit dem Index zu tun haben, auch das CockPit des DOS-Systems (-Ø 0.11.2, Menüpunkt "Routinen / organisieren") kann man noch verwenden. 
Ab V32 (2012) gibt es die hier beschriebenen Programme auch für Linux und Solaris.
Wenn man  eine völlig `neue Datenbank` anlegt, entsteht beim Abspeichern des ersten Datensatzes auch sofort die Indexdatei: das Programm fordert zur Eingabe des ersten Datensatzes auf und erzeugt selbst den Index. In diesem (recht seltenen) Fall wird das Programm  index.exe  nicht gebraucht! Sondern erst später, wenn der Index einmal erneuert werden soll.
Wenn aber schon Daten vorhanden sind, z.B. umgewandelte Altdaten, und noch kein Index, muß ein Programm aus den Daten zunächst eine Datenbank machen. Ebenso, wenn die Indexdatei abhanden gekommen oder unbrauchbar geworden ist, oder wenn ihre Struktur (die Form der Zugriffsschlüssel) verändert werden soll. Das dazu nötige Programm ist die Nummer 7 und heißt index.exe. Es gibt den Datensätzen (wenn nötig) neue Nummern, schreibt sie evtl. in eine neue .cLD-Datei oder hängt sie an eine vorhandene an, und vor allem extrahiert es aus den Sätzen die Suchbegriffe und sortiert sie. Dabei entstehen zunächst vorsortierte Hilfsdateien mit den Namen ii1 bis iiN (N>=1). Aus diesen Hilfsdateien macht das Programm  qrix.exe  dann die fertige Indexdatei vom Typ .cDX (Standard: cat.adx). Den gesamten Vorgang bezeichnet man auch als das Generieren der Datenbank. Das Indexieren ist nur ein Teil davon, aber der aufwendigste. 
Tip: Das ORG-Menü erzeugt eine Datei org.bat, in der die korrekten Programmaufrufe stehen, das CockPit erzeugt eine gleichwertige ccc.bat.

	Grundsätzlich:  index  im Mehrplatz-Betrieb nur einsetzen, wenn gerade niemand anders an der Datenbank arbeitet. Das Programm `upd.exe` (-Ø Kap.9) kann dagegen auch Daten in eine "lebende" (d.h. eine in dem Moment benutzte) Datenbank einmischen. 

Es gibt 7 mögliche Ausgangssituationen, denen 7 Funktionen des Programms  index  entsprechen. Diese Funktionen werden beim Aufruf des Programms mit der Option -f  ausgelöst:	(-Ø CockPit  0.11.2) 
(Was hier über .ALG und .ALD gesagt wird, gilt natürlich genauso für .PLG etc.) 

  1	Es liegen allegro-Daten zum Indexieren vor, und zwar 
	•	.ALG-Dateien, die man aus eigenen Vorarbeiten oder anderen Quellen per Import erhalten hat, 
	und / oder 
	•	.ALD-Dateien, die bereits zu einer Datenbank gehören oder gehört haben. 
	Dann genügt es, das Programm  index  auf diese Daten loszulassen, und es generiert mit Hilfe einer Index-Parameterdatei eine völlig neue Datenbank bzw. fügt die Daten zu einer anderen hinzu. 
	Wichtig: alle Sätze erhalten neue interne Satznummern, es wird aber keine Kategorie verändert. 
	Option:  -f7    (Datenbank völlig neu aufbauen; ausführliche Beschreibung -Ø 7.1) 
  2	Eine Datenbank soll einen neuen Index erhalten, weil der bisherige nicht mehr funktioniert oder man die Parameter verändert hat. Die .ALD-Dateien (samt Satznummern) sollen unverändert bleiben. 
	Option:  -fi    (Funktion "Index erneuern") 
  3	Der Index ist in Ordnung und kann so bleiben, aber die .ALD-Dateien enthalten durch viele Löschungen viel leeren Raum, den man wieder frei haben will. Dazu müssen nur die .ALD-Dateien "entlüftet" werden, wie der Fachausdruck dafür lautet. 
	Option:  -fr    (Funktion "Bereinigung" oder "Entlüftung" (gelöschte Sätze ganz beseitigen)  
  4	Die Umstände 2 und 3 sind beide gegeben. In diesem Fall kann INDEX auch beide Aufgaben in einem Durchlauf erledigen. Wichtig: die internen Satznummern sollen erhalten bleiben. 
	Option:  -fn    (Funktion "Nummerntreue Erneuerung der Datenbank") 
  5	Nur die Satztabelle (.TBL) soll erneuert werden (wenn sie z.B. versehentlich gelöscht wurde). 
	Option:  -ft    (Funktion "Satztabelle erneuern") 
  6/7	Nur das Kurztitelregister (.STL) oder die Restriktionsdatei (.RES) soll erneuert oder erstmals angelegt werden (dann sind zuerst die Vorkehrungen in der .cPI zu treffen). 
	Option:  -fs  bzw. -fx    ("Kurzanzeige erneuern" bzw. "Restriktionsdatei erneuern") 

Alle diese Funktionen kann man, wie schon gesagt, mit einem Klick aus dem `ORG-Menü` heraus erledigen. Dieses Kapitel erklärt, was dann abläuft. 

Zwei weitere Situationen sind hiermit noch nicht erfaßt: 

 a)	Man hat Daten aus anderen Quellen, die anders strukturiert sind als allegro-Daten. 
	Dann muß zunächst mittels  import  das Material in allegro-Grunddateien umgewandelt werden (Typ .ALG); dann liegt Situation 1 vor, und  index  kann daraus eine Datenbank machen. 
	"Import" ist ein Kapitel für sich, oder sogar zwei: Kap. 5 und 11 zeigen, wie man aus anders strukturierten Fremddaten die benötigten .ALG-Dateien erzeugen kann. 

 b)	Datensätze aus anderen, aber gleich strukturierten allegro-Datenbanken sollen eingemischt werden, wobei vorhandene Sätze ganz oder teilweise durch neue zu ersetzen sind. Dafür ist das Programm  upd.exe  zuständig (-Ø Kap.9).  index kann Sätze nur hinzufügen, nicht austauschen. 

Daß nach einem "Absturz" (z.B. bei Stromausfall) der Index nicht mehr angezeigt wird, also unbenutzbar geworden ist, das kommt selten vor (meistens überlebt er das), und wenn man gewissenhaft Datensicherung betrieben hat, braucht man in diesem Fall keine Index-Erneuerung (Funktion -fi) zu machen: bei einer großen Datenbank geht es schneller, dann ein "Playback" zu fahren (-Ø Kap.0.7 und Kap.9). 
Notwendig zur Generierung einer Datenbank ist eine Index-Parameterdatei (Typ .cPI, -Ø Kap.0.3 u. Kap.10, Standards: cat.api und bank.npi). Diese Datei enthält die genaue Vorschrift, wie die Indexeinträge aus den Datensätzen zu erzeugen sind. Entweder man benutzt eine der mitgelieferten, ändert sie evtl. nach eigenen Wünschen ab, oder man legt selbst eine neue an (-Ø Kap.10.1). 

7.1	Datenbank-Generierung : Ablauf

Diese Standardfunktion (Situation 1) des Programms  index  soll hier besonders ausführlich beschrieben werden. 
Angenommen, 
  •	man hat seine Ausgangsdaten auf einem Verzeichnis  d:\books  im Standardformat, d.h. es sind Dateien des Typs .ALG 
  •	die Datenbasis soll  buch  heißen, d.h. man hat eine Parameterdatei  buch.api  für die Indexstruktur 
  •	Die Datenbank soll dann 
	a) auf dem Unterverzeichnis  buecher  des allegro-Verzeichnisses auf  Laufwerk C: stehen, oder 
	b) dort steht bereits eine und soll durch die neuen Daten angereichert werden. 
	(Vorsicht: letzteres im Mehrplatzbetrieb nur durchführen, wenn niemand dran arbeitet!) 

Dann sieht das Schema der Befehle folgendermaßen aus, jeweils für die Situationen ohne bzw. mit V14-Schlüsseln:
(In rot die sinngemäß zu ändernden Angaben). Angenommen ist, daß die Befehle auf dem Programmverzeichnis ausgeführt werden, standardmäßig ist das c:\allegro.

a1) Neuaufbau ohne V14-Schlüssel 
index -f70 -dd:\books\*.alg -ebuch/buecher -n1 -ka 
					       (UNIX: ... -ebuch=buecher ...) 
qrix -fq -dbuecher -ebuch/buecher -ka

a2) Neuaufbau mit V14-Schlüsseln (z.B. beim Standardsystem mit cat.api) 
index -f70 -@1 -dd:\books\*.alg -ebuch/buecher -n1 -ka 
					       (UNIX: ... -ebuch=buecher ...) 
qrix -fq0 -dbuecher -ebuch/buecher -ka
index -fi1 -@2 -dbuecher\*.ald -ebuch/buecher -ka   
qrix -fq1 -dbuecher -ebuch/buecher -ka
index -fa -dbuecher\*.ald -ebuch/buecher -ka   

b1) Einspeisen in eine schon bestehende Datenbank, ohne V14 
index -f71 -dd:\books\*.alg -ebuch/buecher -n1 -ka     (UNIX: ... -ebuch=buecher ...) 
qrix -fq1 -dbuecher -ebuch/buecher -ka

b2) Einspeisen in eine schon bestehende Datenbank, mit V14 
index -f71 -@1 -dd:\books\*.alg -ebuch/buecher -n1 -ka     (UNIX: ... -ebuch=buecher ...) 
qrix -fq1 -dbuecher -ebuch/buecher -ka
index -fi1 -@2 -dbuecher\*.ald -ebuch/buecher -n1 -ka   
qrix -fq1 -dbuecher -ebuch/buecher -ka
index -fa -dbuecher\*.ald -ebuch/buecher -ka 

b3) Erneuerung einer Zusatz-Indexdatei  (`MultiX`) : zum Beispiel die Datei cat.agx
index -fi0 -@2 -Zg -dbuecher\*.ald -ebuch/buecher -ka
qrix -fq0 -Zg -dbuecher -ebuch/buecher -ka

Hinweise: das Programm nennt bei -f7 und bei  -fn  die Ausgangsdateien um: die Typen .ALG bzw. .ALD werden zu .A8G bzw. .A8D (früher .A1G bzw. .A1D). Das ist eine Vorsichtsmaßnahme, insbesondere, damit nicht eine .ALD-Datei an sich selbst hinten ankopiert wird. Wenn alles gut gelaufen ist, hat man hinterher neue .ALD-Dateien und die alten sind entbehrlich. Folgerung: normalerweise kann und sollte man die Ausgangsdateien, also Typ .c8d, löschen, denn alle Daten sind in neue .ALD-Dateien überführt worden. Will man aber aus irgendeinem Grund die Aktion wiederholen, oder passierte während des Durchlaufs ein Zusammenbruch: Typ .ALD löschen, .A8D in .ALD umbenennen, und das Ganze nochmal. 

Weitere Hinweise 

Dateigröße begrenzen
Die neu entstehenden Dateien des Typs .ALD werden normalerweise bis zur Größe von 16.000.000 Bytes aufgefüllt. Dann beginnt das Programm mit einer neuen Datei (auf  buch_1.ald  folgt  buch_2.ald  usw.). Will man die Größe der einzelnen Datei z.B. auf handliche 3 MB beschränken, gibt man beim Start zusätzlich die Option 
index ... -z3000000
Sollen die Dateinummern nicht mit 1 anfangen, sondern z.B. mit 73, ergänzt man -n73. 
Sollen größere Dateien als 16MB zulässig sein (sog. Aufbohrung): Wert ii in der Indexparameterdatei setzen, z.B. ii=2 für das Doppelte usw. Dies geht nicht im laufenden Betrieb, sondern direkt danach muß man einen Neuaufbau einer Datenbank (s.o. a2) durchführen.

Zwischenmeldungen
Das Indexprogramm gibt die Zwischenzeiten für die Bearbeitung von jeweils 100 Datensätzen bzw. bis zu 100.000  Schlüsseln an (abhängig von deren Länge). Am Ende werden Sie informiert über den Umfang Ihrer Indexdatei. Diese Angaben werden zusätzlich in eine Datei namens PROTOK geschrieben, die man sich ansehen oder ausdrucken kann. In PROTOK findet man auch am Ende die Befehlszeile, mit der das Programm QRIX anschließend aufgerufen wird, um die Zwischendateien zusammenzumischen. 

Endergebnis
Am Ende erhält man die Indexdatei  buch.adx, und sie liegt im Unterverzeichnis  allegro\buecher. Noch einmal zu den Bestandteilen des Namens: 
	buch :		der von Ihnen vergebene Name der Datenbasis, stimmt überein mit  dem Namen Ihrer Index-Parameterdatei (buch.api) 
	.adx :		Typkennung für "Indexdatei zum Kategoriesystem A" (wenn Sie z.B. unter  p.cfg  arbeiten, brauchen Sie  BUCH.PPI  und es entsteht  buch.pdx). 

Satznummern
Das Programm  INDEX  gibt bei Funktion -f7  jedem Satz automatisch eine neue interne Satznummer. Diese steht nicht in irgendeinem Datenfeld! Bei Neuaufbau einer Datenbank beginnt die Numerierung mit 1. Die internen Satznummern gelten, solange man nicht mit Funktion -f7  neu indexiert. Mit  -fi, -fn und -fr  bleiben sie erhalten. 
Wenn Sie eigene Identifikationsnummern haben, können Sie diese z.B. in Kategorie #00 eingeben und mit in den Index einsortieren lassen, um darauf zugreifen zu können und um einen Primärschlüssel für  upd.exe  zu haben (-Ø`Kap.9.). Solche Nummern sind dann dauerhaft und von der Datenbank unabhängig. Die Nummernvergabe für neu hinzukommende Sätze kann automatisiert werden: dazu muß man die Befehle cn und ce in der .CFG in geeigneter Weise einrichten (-Ø Anh. A.1.3). 

Wollen Sie die gesamte Datenbank wieder löschen, dann geben Sie die Befehle
del BUCH.ADX 
del BUCH.TBL 
del BUCH.STL 
del BUCH.RES 
del BUCH.LOG 
del BUCH*.ALD     Diese Dateien nicht löschen, wenn Sie die Datenbank neu generieren wollen!
auf dem Unterverzeichnis allegro\buecher. 

Datenbank neu generieren
Um eine Datenbank neu zu generieren, z.B. wenn man Änderungen an der Indexdefinition vorgenommen hat, braucht  index nur die .ald-Dateien, daher kann man dbn.tbl, dbn.stl, dbn.res und  dbn.c?x  unbedenklich löschen, denn  index  wird sie neu erstellen. Dadurch gehen keine Anwenderdaten verloren! 

Mißglückter Versuch
Löschen muß man eine Datenbank z.B. nach einem mißglückten Datenbankaufbau, damit die dann vorhandenen, aber unbrauchbaren Dateien den nächsten Versuch nicht behindern oder scheitern lassen und der Platz wieder freigemacht wird. Dann sollte man auch die .cld-Dateien löschen, weil man die Ausgangsdaten (unter *.c8d, früher .c1d) in der Regel noch hat und zur Generierung wieder auf diese zurückgreifen kann, nachdem man sie wieder umbenannt hat. 

V14 : Indexierung in zwei Schritten
Ab Version 14 ist es möglich, in Datensätzen Stammsatznummern zu verwenden, z.B. _123 statt eines Personen- oder Körperschaftsnamens, aber im Index trotzdem den Datensatz unter dem Klartext des Namens zu finden (-Ø 10.2.6.8). Das Programm  index  muß dann einen weiteren Durchlauf machen, weil es im ersten Durchlauf die Nummern noch nicht durch die Klartexte ersetzen kann. Das passiert nicht automatisch, sondern man ruft  index  für diesen Durchlauf nochmals auf und zwar mit der dafür vorgesehenen Option -fa1. 
Alternative für Systemverwalter: man indexiert in zwei bzw. drei Schritten, und zwar mit diesen Befehlen: (s.o.  7.1 a2 und b2)
index -@1 -fi0...		nur Primärschlüssel indexieren 
qrix -fq0...           	die Zwischendateien mischen 
index -@2 -fi1...		alle anderen Schlüssel indexieren. 
qrix -fq1...           	die Zwischendateien mischen 
index -fa1...		    	Ersetzungsschlüssel (Klartexte) einsetzen. 
Statt -fi0 kann auch -f70 oder -fn0 vorkommen, aber wichtig ist: im zweiten Durchlauf muß es -fi1 heißen. Diese Methode ist schneller, wenn es viele Stammsätze gibt. 
CockPit macht das automatisch so, wenn es eine V14-Datenbank ist (d.h. wenn i5  in den Indexparametern gesetzt ist). 

7.2	Datenbank ganz oder teilweise erneuern

Dringende Empfehlung: Machen Sie dies alles über das Org-Menü (h org  eingeben), denn das ist mit Abstand die schnellste und sicherste Methode, bei der man von den Einzelheiten gar nichts zu wissen braucht. Wenn Sie immer noch lieber das  CockPit verwenden, geht es damit genausogut. 
Hier die Hinweise für diejenigen, die es genauer wissen wollen, um z.B. eigene Skripte (Batchdateien) zu konstruieren. 
   •	Man trifft, falls nötig, die Vorbereitungen in der Index-Parameterdatei: Definition neuer Schlüssel, Änderung oder Beseitigung existierender Definitionen. 
   •	Man startet den Vorgang in folgender Weise  (genauer siehe 7.1) 
	Gesamte Datenbank erneuern:  index -f70 -n0 -ka -d... -e...
	Nur den Index erneuern:  index -fi0 -ka -d... -e...	
	TBL-Datei erneuern:   index -ft -ka -d... -e... 	
	STL-Datei erneuern:   index -fs
	RES-Datei erneuern:   index -fx	

Anmerkung: Die Dateitypen .TBL, .STL und .RES werden bei -fi nebenbei mit erstellt, wenn sie nicht existieren. Wenn sie existiert, bleibt .TBL bei  -fi  unverändert. Zur Erneuerung der Indexdatei kann man als Schema auch das in 7.l gezeigte verwenden, nur mit -fi0 statt -f70 und -dbuecher\*.ald, ansonsten ist alles gleich.
Bei einer Erneuerung des Index verschwinden die Änderungen und Ergänzungen, die man manuell gemacht hatte (-Ø Kap.1.4, Inst/Del). Wenn nur einzelne Register zu erneuern sind, nicht der gesamte Index: -Ø 7.6. 

7.3	Bereinigen ("Entlüften") von Datenbankdateien

Zweck: Rückgewinnung von Speicherplatz, Beschleunigung beim Speichern. 
Bei der normalen Arbeit mit einer Datenbank kann es geschehen, daß sich immer mehr "Leersätze" ansammeln. Das sind Speicherplätze innerhalb von .cLD-Dateien, die nicht mehr belegt sind, weil die Datensätze, die dort standen, wegen Verlängerung "umgebettet" werden mußten. Diese Vorgänge spielen sich völlig automatisch ab, daher wird der Anwender das Phänomen nicht bemerken. Die "Leersätze" werden automatisch wieder benutzt: wenn ein neuer Datensatz gespeichert werden muß, der in einen dieser Plätze paßt, nimmt das Programm den am besten passenden Leersatz. Dadurch ist es kaum zu erwarten, daß die Größe des ungenutzten Platzes ins Uferlose wächst. Handlungsbedarf entsteht nur dann, wenn man ständig Datensätze verlängert, indem man neue Angaben hinzufügt. Dann werden sich allmählich immer mehr kurze Leersätze ansammeln. Ein unangenehmes Symptom kann auftreten: das Abspeichern dauert manchmal ungewöhnlich lange. Nach dem Entlüften geht's wieder schneller. Der Grund ist: die Suche nach einem passenden gelöschten Satz zum Abspeichern eines neuen oder verlängerten Satzes dauert länger, wenn sehr viele Leersätze vorhanden sind. 

Achtung: Grunddateien (Typ .ALG) kann man nicht entlüften. Insbesondere könnte man auf diesem Wege keine neuen Daten in eine Datenbank einbringen. Das geht nur mit index -f71. Um den Aufbau einer Datenbank aus mehreren Ausgangsdateien zu beschleunigen, könnte man nur so verfahren: zuerst die Index-Parameterdatei "abspecken": nur einen einzigen ak-Befehl aktivieren. Dann mit index -f71 die einzelnen Dateien indexieren. 
Dann alle ak-Befehle wieder aktivieren und per CockPit μr o i (Index erneuern) starten. Nötig wäre das alles nur, wenn aus den .ALG-Dateien mehrere .cLD-Dateien werden sollen, ansonsten kann man gleich alles auf einmal indexieren. 
Wieviele Leersätze eine Datenbank hat, kann man so feststellen: 
Auf dem Registerbildschirm (-Ø 1.4) gibt man   F6 // Enter im Register 1 . Dann erscheinen Zahlen, vor denen jeweils "//" steht. Das sind die Zugriffsschlüssel der Leersätze, und zwar geben die Zahlen deren Länge an. Geben Sie jetzt noch  F10 2 <Enter>  (d.h. Trunkierung auf 2 Stellen), dann sehen Sie "// ..." und links daneben die Anzahl der Leersätze. (Mit F7 Trunkierung wieder aufheben.) Wenn Sie zugreifen auf einen dieser Sätze, werden Sie eine ganz normale Aufnahme sehen, es wird nur oben die Mitteilung erscheinen "Diese Aufnahme wurde getilgt". Der Aufnahmetext bleibt bei einer Löschung zunächst unverändert stehen; nur die Zugriffsschlüssel werden aus dem Index beseitigt und der Leerschlüssel wird eingeordnet. Erst bei einer erneuten Benutzung des Leersatzes wird der dort stehende Text tatsächlich überschrieben. 

Einfacher und noch besser: Die Anzahl Leersätze und deren Umfang in Byte erfährt man mit CockPit μr o u  (Funktion "ungenutzten Platz prüfen", auch auf dem Org-Menü von a99). 
Wenn Sie also sehen, daß es sehr viele Leersätze gibt, können Sie die Datenbank bereinigen ("entlüften"), um den ungenutzten Plattenraum wieder für das gesamte System (nicht nur für allegro) verfügbar zu machen. 
Ausgeführt wird auch diese Arbeit vom Programm  index. Es kopiert die .cLD-Dateien, wobei es die Leersätze wegläßt, beseitigt die //-Schlüssel aus dem Index und aktualisiert die .TBL-Datei. Die alten, löcherigen .cLD-Dateien haben anschließend den Typ .c8d und können gelöscht werden, nachdem alles korrekt gelaufen ist. Es empfiehlt sich sehr, sie dann zu löschen! Vor einer weiteren Neu-Indexierung besteht CockPit sogar darauf. 
Überlegen Sie vorher, wie groß die Anzahl Füllzeichen je Aufnahme sein soll, denn diese wird beim Schreiben der neuen Datei an jede Aufnahme angehängt. Ändern Sie evtl. diesen Wert (dort steht z.B. f 3) in Ihrer .CFG-Datei. 
Mit dem Befehl 
index -fr -n0 -d... -e...
starten Sie die Entlüftung.  Die Ausgangsdateien werden umbenannt auf den Typ .c8d. 
Vorsicht: Entlüftung im Mehrplatzbetrieb nur, wenn niemand an der Datenbank arbeitet! Sonst drohen Schäden. Prüfen Sie anschließend, ob die Datenbank in Ordnung ist. Sie finden unter /[0] eine neue Eintragung im Index. Darunter sind die nicht mehr besetzten Satznummern der gelöschten Sätze versammelt. Beim Zugriff darauf kommt die Meldung "nichts gefunden, Satznummer nicht besetzt", was aber nichts ausmacht. Wenn alles glatt gegangen ist, müssen die .c8d-Dateien gelöscht werden (mit dem MS-DOS-Befehl del *.?8?). Wenn nicht, löscht man die neuen Dateien (del xxx.?8d, del *.?dx, del *.tbl), benennt die alten wieder zurück (ren`*.?8?`*.?L?) und indexiert sie neu, was allerdings erheblich mehr Zeit kostet. Oder man holt eine Sicherungskopie hervor und fährt ein "Playback" (-Ø 0.7). 
Die unbenutzten Nummern werden übrigens wieder verwendet, so daß die Einträge /[0] schließlich verschwinden. 

7.4	Datenbank als Ganzes erneuern

Entlüftung und Index-Erneuerung können in einem Zuge erfolgen, wobei die Satznummern erhalten bleiben. Deshalb wird dieser Vorgang auch "nummerntreue Erneuerung" genannt. (Wenn es darauf nicht ankommt, könnte man genausogut nach 7.1 verfahren, wobei der Vorteil ist, daß es hinterher keine unbesetzten Satznummern gibt. Allerdings werden die, wie gesagt, im weiteren Verlauf wieder benutzt.) 
Man startet die nummerntreue Erneuerung mit der Option  -fn :
index -fn -d... -e...
Wie in 7.1a und 7.1b muß man auch hier die Optionen  -fn0 -@1  und  -fn1 -@2 anwenden, also zwei Durchläufe machen lassen, wenn V14-Daten vorliegen. 

Nachdem alles gelaufen ist, gibt es evtl. eine oder mehrere Dateien des Typs .A8D, die gelöscht werden können. Wenn was schief gegangen ist: die .A8D-Dateien evtl. wieder in .ALD umbenennen und die Sache wiederholen. 
Diese Funktion ist auch sinnvoll, wenn man den Parameter ii  für die maximale Dateigröße verändert hat (-Ø 10.2.1.3). 
Also konkret: wenn eine .ALD-Datei nun eine maximale Größe von 48 MB haben soll, muß man zuerst in den Indexparametern einsetzen 
ii=3 
und danach die Erneuerung starten mit 

index -fn ...
und dabei weder  -n0  noch -z...  setzen, damit wirklich neue .ALD-Dateien der gewünschten Größe entstehen. 

?Registerauszüge=h ac7-2 
?upd.exe=h ac9 
?Fortsetzung=h ac7-2 
?ORG-Menü=h org 
?neue Datenbank=h newdb 
?MultiX=h multix