Die Berechnung der Dateigröße lässt sich für NK-ISAM und K-ISAM einheitlich durchführen. Dazu wird zunächst die Anzahl der Datenblöcke berechnet aus Satzlänge, nutzbarer Blockgröße und Anzahl der Datensätze.
nutzbare Blocklänge:
|
n | Blockungsfaktor |
PAD | PAD-Wert (siehe PAD-Operand im Makro FILE) |
RECSIZE | Satzlänge |
Größe des Datenteils:
|
Für NK-ISAM ist zusätzlich die Anzahl der Überlaufblöcke abzuschätzen. Sie ist abhängig von der Satzlänge:
Überlaufblöcke:
|
i = 0 | für RECSIZE <= n * 2032 - 16 |
i = 1 | für RECSIZE > n * 2032 - 16 |
Primärindexblöcke sequenziell erstellter NK-ISAM-Dateien enthalten im Durchschnitt ca. 200 Primärindexeinträge. Damit ergibt sich folgende Abschätzung:
Dateigröße:
|
i = 1 / i= 0 berücksichtigt Überlaufblöcke (siehe oben)
Bei NK-ISAM-Dateien kann die Gesamtzahl der Primärindexblöcke einer Datei näherungsweise mit der Zahl der Primärindexblöcke in der untersten Primärindexebene gleichgesetzt werden. Aus den folgenden Tabellen lässt sich die Größe von NK-ISAM-Dateien leicht ableiten.
Bei sequenziell erstellten NK-ISAM-Dateien enthält jeder Primärindexblock ca. 200 Primärindexeinträge (Schlüsselkomprimierung!); daraus lässt sich folgende Tabelle ableiten:
Anzahl Datenblöcke | Anzahl Primärindexebenen |
0 – 200 | 1 |
Für nicht-sequenziell erstellte Dateien wächst die Anzahl der Primärindexebenen auf Grund des Blocksplittings schneller als für sequenziell erstellte Dateien. Im Mittel enthält ein Primärindexblock ca. 160 Primärindexeinträge, wenn mehr als eine Primärindexebene existiert.
Anzahl Datenblöcke | Anzahl Primärindexebenen |
0 – 200 | 1 |
Bei einer Datei mit Sekundärschlüsseln kann die Anzahl der Sekundärindexblöcke gemäß der nachfolgenden Formel abgeschätzt werden. In dieser Formel ist berücksichtigt, dass versucht wird, die Sekundärindexblöcke zumindest zu 75 % zu füllen. Dieser Füllgrad stellt nur einen Mittelwert dar. Es kann Fälle geben, in denen diese Zahl nicht erreicht werden kann.
Sekundärindexblöcke für den i-ten Sekundärschlüssel:
|
PAM-Seiteni | PAM-Seiten der Sekundärindexblöcke für den i-ten Sekundärschlüssel |
P-KEYLEN | Länge des Primärschlüssels der Datei |
hi
| Relative Häufigkeit, mit der im i-ten Sekundärschlüssel der Datei verschiedene Werte vorkommen: Haben zum Beispiel in der Datei durchschnittlich |
S-KEYLENi | Länge des i-ten Sekundärschlüssels |
Die Gesamtzahl der Sekundärindexblöcke für alle Sekundärschlüssel in der Datei ergibt sich dann als Summe der Beiträge aller vereinbarten Sekundärschlüssel:
Sekundärindexblöcke einer Datei mit n Sekundärschlüsseln
|
K-ISAM
Für K-ISAM-Dateien ist die Anzahl der Primärindexeinträge von der Schlüssellänge abhängig:
|
In dieser Formel ist berücksichtigt, dass für Primärindexblöcke nur ein Füllgrad von 50 % erreichbar ist. Die Gesamtgröße einer K-ISAM-Datei errechnet sich dann folgendermaßen:
Dateigröße:
|
KEYLEN: Schlüssellänge