Wenn eine Datenbank plötzlich nicht mehr
funktioniert, nachdem sie es jahrelang ohne Probleme tat, kann die Ursache ein
übergelaufenes Faß sein. Es gibt kein schrankenlos liberales System, im Leben
nicht und nicht in der Datenwelt. Hier wie dort sind die Grenzen nicht immer
leicht zu erkennen, und die Auswirkungen einer Überschreitung können durchaus
überraschend sein. Selten auf angenehme Weise, versteht sich, und Verwunderung
bis Verärgerung macht sich breit, daß einen "das System" nicht
rechtzeitig und unmißverständlich gewarnt oder deutlich sichtbare Grenzpfähle
aufgestellt hat. In der Tat, man füllt dauernd Material in diverse Fässer,
sieht aber nicht, ob eins davon im nächsten Moment überlaufen wird. Muß man
nicht klare und rechtzeitige Warnungen von einem System fordern, von dem man sich in
einiger Hinsicht abhängig macht? Nicht alles ist jedoch leicht vorhersehbar, was
in der Praxis vorkommt, doch Katastrophen muß man nicht befürchten. ACHTUNG: Wer in die
Nähe einer Grenze gerät, etwa mit extrem langen
Datensätzen, muß wissen, daß nicht alles total
abgesichert ist - das liegt einfach in der Natur der Dinge - und
deshalb Fehlfunktionen bis hin zu Abstürzen ohne Fehlermeldung
nicht ausgeschlossen sind. Grenzen
des Wachstums Datenbank Eine
allegro-Datenbank könnte maximal 232-1=4.294.967.295
Sätze enthalten. Die größten Datenbanken liegen bisher bei 25 Millionen Sätze. Man muß nirgends etwas für die Größe der eigenen
Datenbank einstellen. Datendateien Die
Daten müssen auf bis zu 255 Dateien des Typs .cLD
mit jeweils bis zu 16 Millionen Byte aufgeteilt werden. (Mit Option -z kann
man einen kleineren Wert einstellen.) Die Programme passen auf, d.h. sie machen
ein neues Faß auf (legen eine neue Datei an), wenn eins überzulaufen droht.
Wenn die Frage "Dateinummer?" kommt (z.B. beim Kopierbefehl C
in Presto), muß diese mit einer Zahl zwischen 1 und
255 beantwortet werden. Index Wegen
der Variabilität kann hier keine maximale Anzahl von Einträgen errechnet
werden. Bei der größten bekannten Datenbank lag die Anzahl der Indexeinträge
oberhalb 180 Millionen, wobei noch keine Probleme auftraten. Als Datei kann der
Index jedoch nicht größer als 2 GB werden. Normalanwender haben also kein
Problem zu befürchten, es sei denn Platzmangel auf der Platte. Ab V27.2 kann eine Datenbank mehr als eine Indexdatei haben: das MultiX-Konzept ermöglicht es mit recht geringem Aufwand. Jede
Indexdatei hat bis zu 11 Register. Mit symbolischen Namen kann man bis
zu 100 logische Register einrichten. (Bis V30: 50.) LOG-Datei Im Prinzip ist diese
nicht in der Größe begrenzt, das Problem stellt sich aber gar nicht: Sie sollte jedesmal gelöscht werden, wenn
eine Gesamtsicherung gemacht wird, und sie soll nicht mit gesichert werden
(weil ihr Inhalt ja in der Datenbank schon enthalten ist). Das CockPit bringt zwar die Meldung "Die LOG-Datei ist etwas groß geworden, machen Sie bald mal eine
Sicherung", das ist aber nur eine Erinnerung, man muß nicht sofort etwas
tun. In der CockPit-Vorgabendatei, normalerweise
CP.OPT, kann man mit dem Befehl L einstellen, bei welcher Größe diese
Erinnerung kommen soll. Je größer die LOG-Datei ist, umso länger würde eine Wiederherstellung im
Katastrophenfall dauern. Grenzwerte im Arbeitsspeicher (PRESTO
und APAC)
In der nachfolgenden Liste sind diejenigen Werte, die der Anwender verändern kann, durch Fettdruck und orange gekennzeichnet. Dort steht der Befehl, den man in der CFG dazu benutzen muß (siehe Anh. A.1.3, m-Befehle unter "Speicher konfigurieren").
Maximalgröße in Byte: Dos-Programme: mK48000 // a99, acon: mK250000 Aus
internen Gründen muß der längste Datensatz zweimal hineingehen, und für
Nachladungen u.a. muß Platz bleiben. D.h. die Grenze für einen einzelnen Datensatz
liegt bei ca. 20000 Byte (DOS) bzw. ca. 120000 (Windows, UNIX).. Maximale
Anzahl Datenfelder des Satzes: mk2500
Wenn z.B. kein Satz mehr als 100 Kategorien hat, ist mk250 ein sicherer Wert. Hierarchische Sätze gelten hierbei mitsamt allen Untersätzen als ein Satz. Datenfelder Maximale
Feldlänge: intern auf 16000 Byte festgelegt, nicht einstellbar. (DOS: 10000) Kategoriesystem md In
der CFG kann man maximal 2000 verschiedene Datenfeldnummern deklarieren.
Standard sind 800. Die Kategorienummern können 2, 3 oder 4 Zeichen breit sein.
(Mehr wird nicht empfohlen.) Abfrageliste Eine
ausdrückliche Grenze für den Umfang der Abfrageliste gibt es nicht. Sie wird
allerdings im Aufnahmespeicher untergebracht. Der durch den Befehl mK definierte Platz für den aktuellen
Datensatz muß deshalb evtl. vergrößert werden, wenn man eine sehr lange
Abfrageliste hat. In a99 nicht mehr von Belang. Hintergrundspeicher (= Reservespeicher) mB FLEX: var cr Für
die Kopien der zuletzt belegten Kategorien und für die Nutzervariablen (#uxx-Kategorien) sind standardmäßig 12000 Byte belegt.
Obergrenze: 32000 Phrasenspeicher mP FLEX: var cp Als
Standard sind 4000 Byte vorgegeben. Wenn man kaum mit Phrasen arbeitet, sollte
man trotzdem nicht weniger als 1000 einstellen, weil hier auch z.B. die
Zwischenteile der Exportparameter abgelegt werden. Parameterspeicher mX Automatische
Vorgabe sind 40000 Byte. Hat man sehr umfangreiche Index- und Anzeigeparameter
und zusätzlich eine große Export-Parameterdatei, muß man einen größeren Wert
einsetzen. Das Maximum ist 64000. Der benötigte Platz ist immer kleiner als die
Größe der Parameterdateien, denn z.B. die Kommentare werden nicht mit gerechnet,
und auch sonst wird intern platzsparend gespeichert. In PRESTO müssen alle (bis
zu 4) geladenen Parameterdateien in diesen Raum passen, in a99/alcarta hat jede einzelne Parameterdatei soviel Platz. Ergebnismenge mr Relevant
nur für PRESTO und die davon abgeleiteten Programme. Standard ist 15000,
Maximum 16000. Um eine Datenbank bei Arbeitsspeichermangel erst einmal zum
Funktionieren zu bringen, setzt man immer zuerst diesen Wert herunter, z.B.
drastisch auf mr100, das spart sofort 60K. Artikelliste Die
Liste der am Anfang von Titeln zu prüfenden Wörter (d-Zeilen in der CFG) kann
maximal 360 Byte lang sein. Stoppwortliste Die
Liste der aus dem Index auszublendenden Wörter darf 1023 Einträge umfassen und
wird mit im Parameterspeicher untergebracht. UIF-Texte Hierfür
sind 15000 Byte und 500 Zeilen fest eingestellt. So stark kann man die Texte in
den UIF-Dateien kaum verlängern, daß diese Grenze
erreicht würde. (Die alten DOS-Programme aLF und ORDER
hatten höhere Grenzen) Formulare [nur Windows-Programme] Bis
zu 250 Formulare können in einer .FRM-Datei definiert
sein. Unterbringung im Phrasenspeicher, deshalb Wert mP
in der CFG hoch genug setzen! FLEXe [nur Windows-Programme und avanti!] FLEX-Dateien dürfen bis zu 256000 Bytes groß sein, bei avanti
100000. Das ist schon eine Menge! Hilfetexte [nur Windows-Programme, ab V28.8.2!] RTF-Dateien und der Text einer Datenanzeige im Anzeigefeld dürfen bis zu 4 MB Bytes groß sein. Dateinamen Alle
Dateinamen sind in den DOS-Programmen auf eine maximale Länge von 64 Byte
eingestellt (einschließlich Pfadname). In den UNIX- und Windows-Programmen sind
es 255. Leerzeichen in Datei- und Pfadnamen sind nicht erlaubt,
Verzeichnisnamen dürfen keine Namenserweiterung haben. Empfohlen wird,
die 8.3-Konventionen einzuhalten und konsequent nur
Kleinbuchstaben zu verwenden, keine Umlaute oder Akzentbuchstaben. Den
Datenbanknamen (Standard: cat) sollte man sogar auf 4 Zeichen
begrenzen, ohne das Zeichen _. Diese Namen sind intern, d.h. der
Endnutzer sieht sie nicht, daher sind kryptische Namen unkritisch! Indexeinträge Für den aktuellen Satz wird Platz gebraucht, um die Registereinträge zwischenzuspeichern. Maximal kann ein Datensatz in PRESTO und UPDATE 500 Schlüssel haben, die gesamte Länge der Schlüssel darf bis zu 10000 Byte betragen. Für Windows gelten die Werte: 1000 Schlüssel, 32000 Byte je Satz. Diese Werte sind ansonsten nicht einstellbar. Das Programm INDEX allerdings kann beliebig
viele beliebig umfangreiche Einträge je Satz erzeugen: siehe Vb154a, 25.4.2002 Mit der
wichtigste Eintrag kann der "Primärschlüssel" sein (Handbuch
S. 158/159). Wie der aussieht, ist Sache des Anwenders,
hierfür ist aber zu empfehlen, nur die folgenden Zeichen zu
verwenden: Grenzen in Export-Parameterdateien
Länge der Schlüssel Registereinträge
können bis zu 250 Byte lang sein (hinzu kommen automatisch 4 Byte
für die Satznummer). Als Standard ist der Wert 60 als maximale
Schlüssellänge eingestellt, meistens setzt man in den
Indexparametern il=72 .
Dies bedeutet nicht, daß für jeden Schlüssel soviel Platz verbraucht
wird! (Im Gegenteil, die Schlüssel werden sogar komprimiert gespeichert.) Kurzzeilen Die
Einträge der Kurztiteldatei (.STL-Datei) haben eine
feste Länge, die mit i0=.. in den Indexparametern gesetzt wird. Das Maximum
ist 250 (bis 1999: 72). Soviele Zeichen werden dann
je Datensatz in der STL-Datei belegt. (Hier findet
keine Komprimierung statt!) Kopfbefehle Die Gesamtlänge der ak-Befehle ist je Parameterdatei auf 4000 Byte fest begrenzt. Hat man viele solche Befehle, sollte man versuchen, durch Zusammenfassung Platz
zu sparen, z.B. ak=4..+M , statt für jede
der Kategorien der Gruppe #4 einen eigenen Befehl zu schreiben. Zwischenteile Je Parameterdatei kann es bis zu 100 Zwischenteile (= Textkonstanten) geben, das ist fest eingestellt. Sie müssen mit 0 bis 99 numeriert werden. Ab 5.2.2003 (V23.2):
128 Zwischenteile, in den Windows-Programmen sogar 400. Basisparameter Für
einige der Basisparameter (Kap. 10.2.1-5) gibt es fest eingestellte maximale
Längen: Die Parameter ab, as, ae sind auf 80
Byte begrenzt, fa, fb, fs auf 50 Byte, di auf 180 und pb auf 20. Überschreitung eines dieser Werte kann, aber muß nicht,
unvorhersehbare Wirkungen haben. Die meisten Fehler werden abgefangen. Exportzeile Der
Parameter zl für die Zeilenbreite ist auf 130 Byte begrenzt.
Wenn man zl=0 setzt, findet kein Zeilenumbruch statt! Dies wird
in der Regel gemacht, wenn der Umbruch einem Textsystem überlassen werden soll, z.B. auch für .rtf- und .htm-Dateien.
Programmspezifische Grenzen
CockPit Die
Anzahl der "Eigenen Routinen" ist auf 160 begrenzt, aufgeteilt auf
bis zu 16 R-Zeilen mit jeweils bis zu 10 nachfolgenden S-Zeilen (diese bilden
die Untermenüs zu den R-Zeilen). SRCH Wenn
SRCH mit der Meldung "not enough space" aussteigt, sollte man in der CFG den Wert mK verkleinern. IMPORT Ein
Datensatz der einzulesenden Fremddaten kann bis zu 40000 Byte lang sein. Dieser
Wert ist nicht einstellbar. ASORT ASORT
kann Dateien fast beliebiger Größe sortieren. Es erstellt vorsortierte
Zwischendateien mit bis zu 64K Größe, die dann anschließend gemischt werden.
Die maximale Zahl solcher Zwischendateien ist 9999. |
Es gibt inzwischen einige Sprungmarken,
die für bestimmte Zwecke ausdrücklich reserviert sind. Wir stellen hier eine
Liste dieser Sprungmarken zusammen. In der Liste steht I für Indexparameter, E
für Exportparameter. Für die Programme aLF und
ORDER wurden einige Marken für Sonderaufgaben festgelegt; diese werden
hier nicht aufgeführt.
Marke |
I/E |
Aufgabe |
#-@ |
I |
Hier wird der Primärschlüssel
fabriziert. |
#-0 |
I |
Für die Aufbereitung der
Kurztitelzeile |
#-/ |
I |
Für die Aufbereitung der
Restriktionsdatei |
#-1 |
I |
Die Umcodierung der
Benutzereingabe wird an diesen Stellen gemacht. Wenn jemand im Register 7
etwas eintippt, wird dieser Suchbegriff an der Sprungmarke #-7
umgewandelt. (: für Reg.10, ; für Reg.11) (10.2.6.5.1, es muß ic=1
gesetzt sein, damit dies funktioniert, siehe 10.2.1.3) |
#-# |
E |
Abschnitt zur Programmierung
von Globalen Manipulationen (1.5.4) |
#-- |
I |
Definition von
Schlüsseln für die Löschkontrolle (10.2.6.8) |
#-` |
E |
Flip-Aufbereitung (news
42, S.15, Handbuch V15: 10.2.7) Nur PRESTO/APAC |
#-. |
I |
Sog. SR-Schlüssel für
die Satzübergreifende Suche (--> 10.2.6.9) |
#-_ |
E |
Nach F4, am Ende einer Erg.Menge, führt PRESTO/APAC diesen Abschnitt aus |
#-( |
E |
Abschnitt für die
Anzeige des Internformats in a99/alcarta (sonst
kommt bei F5 nichts) |
#- E |
E |
Endabschnitt für Listenproduktion (Achtung: 1 Leerzeichen vor
dem E, news 38, S.7) |