ISAM-Dateien im K-Format, die die maximale Satzlänge ausnützen, werden im NK-Format länger als der nutzbare Bereich des Datenblocks. Sie können im NK-Format behandelt werden, da das DVS Verlängerungen von Datenblöcken, sog. Überlaufblöcke, bildet.
Die Bildung von Überlaufblöcken bringt folgende Probleme mit sich:
die Überlaufblöcke erhöhen den Platzbedarf auf der Platte und damit die Zahl der Ein-/Ausgaben während der Dateibearbeitung,
der ISAM-Schlüssel darf in keinem Fall in einem Überlaufblock liegen.
Überlaufblöcke können vermieden werden, wenn man dafür sorgt, dass der längste Satz der Datei nicht länger ist, als der bei NK-ISAM-Dateien nutzbare Bereich eines logischen Blockes.
Für Datensätze nutzbarer Bereich bei NK-ISAM-Dateien
Die folgende Tabelle stellt dar, wie man bei ISAM-Dateien errechnen kann, wieviel Platz pro logischem Block für Datensätze zur Verfügung steht.
Dateiformat |
| maximaler nutzbarer Bereich |
K-ISAM |
|
|
|
| |
NK-ISAM |
|
wobei n = Blockungsfaktor |
|
wobei n = Blockungsfaktor |
Zur Erläuterung der Formeln
Bei NK-ISAM-Dateien enthält jede PAM-Seite eines logischen Blocks jeweils 16 Byte Verwaltungsinformation. Der logische Block enthält zusätzlich weitere 12 Byte Verwaltungsinformation und pro Satz einen 2 Byte langen Satzpointer.
Bei RECORD-FORMAT=FIXED
ist pro Satz ein 4 Byte langes Satzlängenfeld zwar vorhanden, wird aber nicht zur Satzlänge gerechnet. Deshalb müssen in diesen Fällen pro Satz jeweils 4 Byte abgezogen werden.
Beispiel: maximale Satzlänge einer NK-ISAM-Datei (feste Satzlänge)
Dateivereinbarung:
/ADD-FILE-LINK ...,RECORD-FORMAT=FIXED,BUFFER-LENGTH=STD(SIZE=2),
BLOCK-CONTROL-INFO=WITHIN-DATA-BLOCK
maximale Satzlänge nach der Formel:
4096 - (2*16) - 12 - 1*2 - 1*4 = 4046, abgerundet auf die nächste durch
vier teilbare Zahl: 4044 (byte).