Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Überlaufblock (NK-ISAM)

Überlaufblöcke sind Verlängerungen von Datenblöcken. Sie entstehen, wenn Sätze geschrieben werden, die länger sind als der nutzbare Bereich des Datenblocks. Dies ist z.B. der Fall, wenn Sie Sätze mit gleichen Schlüsseln verwenden und bei der Definition von Satz- und Blocklänge nicht berücksichtigen, dass NK-ISAM solchen Sätzen intern einen 8 Byte langen Zeitstempel anhängt. Überlaufblöcke entstehen auch bei der Umsetzung von K-ISAM-Dateien in NK-ISAM-Dateien, wenn in der K-ISAM-Datei die maximale Satzlänge ausgenutzt wurde.
Die „überlaufenden“ Daten stehen immer am Beginn des Überlaufblocks; am Ende des Blocks befindet sich ein Zeiger auf den zugehörigen Datenblock. Der Datenbereich des Überlaufblocks darf weder Teile des ISAM-Schlüssels (Primärschlüssels) noch der Markierung noch eines Sekundärschlüssels enthalten.

maximale Satzlänge / nutzbare Blocklänge

Werden folgende Regeln beachtet, entstehen keine Überlaufblöcke:

  • die maximal zulässige Satzlänge ergibt sich aus der BLKSIZE- bzw. BUFFER-LENGTH-Angabe:
    n * 2048, 1 <= n <= 16 (für BLKSIZE=(STD,n) bzw. BUFFER-LENGTH=*STD(SIZE=n))

  • die nutzbare Blocklänge reduziert sich um den für Verwaltungsinformationen und Zeitstempel benötigten Bereich

  • da ISAM intern allen Datensätzen ein 4-Byte-Feld mit der Satzlänge voranstellt, reduziert sich bei Sätzen mit RECFORM=F bzw. RECORD-FORMAT=*FIXED die nutzbare Blocklänge noch einmal um 4 Byte

Es ergibt sich folgende Formel für die nutzbare Blocklänge:

RECSIZE <= n * 2032 - 16 - T - F

n

Blockungsfaktor aus BLKSIZE = (STD,n), 1 <= n <= 16 bzw. BUFFER-LENGTH=*STD(SIZE=n)

T

Zeitstempel


T = 8 für Dateien mit Mehrfachschlüsseln


T = 0 für Dateien ohne Mehrfachschlüssel

F

Satzformat


F = 0 bei RECFORM = V bzw. RECORD-FORMAT=*VARIABLE


F = 4 bei RECFORM = F bzw. RECORD-FORMAT=*FIXED

 

Da jeder Datenblock mindestens einen Satz enthält, müssen bei der Definition der Satzlänge 16 Byte für die internen Verwaltungsdaten berücksichtigt werden. Die folgende Tabelle zeigt für ISAM-Dateien mit Standardeigenschaften (Satzformat V, keine Mehrfachschlüssel) den Zusammenhang zwischen maximal zulässiger Satzlänge und nutzbarer Blocklänge für NK-ISAM-Dateien ohne Überlaufblöcke.

Blockungsfaktor n
(BLKSIZE=(STD,n))

max. Satzlänge = BLKSIZE
(in Byte)

nutzbare Blocklänge
(in Byte)

1

2048

2016

2

4096

4048

3

6144

6080

4

8192

8112

5

10240

10144

6

12288

12176

7

14336

14208

8

16384

16240

9

18432

18272

10

20480

20304

11

22528

22336

12

24576

24368

13

26624

26400

14

28672

28432

15

30720

30464

16

32768

32496

Tabelle 49: nutzbare Blocklänge für NK-ISAM-Dateien
 

Maximale Schlüsselposition und -länge

Da weder ISAM-Schlüssel noch Markierungen in einen Überlaufblock hineinragen dürfen, ergeben sich auch für Schlüsselposition (KEYPOS), Schlüssellänge (KEYLEN), Wertmarkierung (VALLEN) und logische Markierung (LOGLEN) Maximalwerte – abhängig von Blockungsfaktor und Satzformat. Die zulässigen Höchstwerte lassen sich nach folgenden Formeln aus der nutzbaren Blocklänge (siehe Tabelle 49) errechnen:


ISAM-Schlüssellänge / -position:

KEYPOS <= SL - F - KEYLEN - VALLEN - LOGLEN + 1

KEYLEN <= SL - F - KEYPOS - VALLEN - LOGLEN + 1

KEYPOS

Schlüsselposition

KEYLEN

Schlüssellänge

VALLEN

Wertmarkierung (Länge)

LOGLEN

logische Markierung (Länge)

SL

nutzbare Blocklänge

F

abhängig vom Satzformat:

  • F = 0 für RECFORM=V
  • F = 4 für RECFORM=F


Beispiel

Dateieigenschaften:

BLKSIZE = (STD,1)
KEYLEN = 12

Für KEYPOS ergeben sich folgende Werte:

RECFORM = V => KEYPOS <= 2016 - 12 + 1 = 2005
RECFORM = F => KEYPOS <= 2016 - 4 - 12 + 1 = 2001