Frage:
Ich habe ein Subfile-Problem in RPG. Das Feld für die relative Satznummer ist ein vierstelliges numerisches Feld. Mein Programm lädt alle Sätze in eine Subfile und verwaltet das Blättern innerhalb der Subfile. Die Datei ist nun auf eine Größe von über 10.000 Sätzen angewachsen. Ich habe das Feld für die relative Satznummer auf fünf Stellen vergrößert und dachte, das Problem sei damit gelöst. Das ist aber nicht der Fall. Sobald der Feldinhalt 10.000 erreicht, bricht das Programm ab, wenn es versucht, einen Satz in die Subfile zu schreiben. Habe ich etwas Wesentliches übersehen?
Antwort:
Sie haben tatsächlich etwas übersehen. Die maximale Satzanzahl für eine Subfile beträgt 9.999. Das wäre die schnelle Antwort. Aber natürlich gibt es noch etwas mehr zu diesem Thema zu sagen. Wenn auch die nominale Grenze bei 9.999 Sätzen liegt, so liegt die praktische Grenze weit unter diesem Wert, da Subfiles mit einer großen Anzahl von Sätzen sich ausgesprochen ungünstig auf die Performance auswirken.
Die Empfehlung geht daher klar in Richtung von Subfiles, die jeweils nur eine gerade benötigte Seite laden. Dieser Ansatz erfordert zwar etwas mehr an Programmlogik, bietet aber deutliche Vorteile. Nicht nur die Performance wird günstig beeinflusst, man erhält auch eine bessere Kontrolle über das Verhalten der Anwendung.
Eine weitere Möglichkeit ist, zwar mehr als eine Seite zu einem Zeitpunkt in die Subfile zu laden, dabei jedoch die Anzahl der zu ladenden Sätze auf einen performance-freundlicheren Wert (z. B. etwa 30 Sätze) zu begrenzen. Diese Technik bringt allerdings keine nennenswerten Vorteile, da das Programm trotzdem die gesamte Logik für z. B. das Blättern beinhalten muss.


