Mit der Anweisung REORGANIZE-CALC reorganisieren Sie CALC-Bereiche, die zu einer Satzart gehören. Das sind:
durch LOCATION MODE CALC angelegte Bereiche
SEARCH KEY USING CALC auf Satzartebene
SEARCH KEY USING CALC in singulären Sets, in denen die Satzart Member ist
REORGANIZE-CALC | ||||||||||||||||||||||||||||||||||||
|
RECORD-NAME = <recordname>
Name der Satzart, deren CALC-Bereiche reorganisiert werden sollen.
CALC-RECORD = NONE
LOCATION MODE CALC-Bereiche werden nicht reorganisiert.
CALC-RECORD = list-poss(6): *WITHIN-POPULATION (...)
Die in dem angegebenen Realm bzw. in den angegebenen Realms liegenden LOCATION MODE CALC-Bereiche werden reorganisiert.
REALM = *ALL
Alle CALC-Bereiche werden reorganisiert.
REALM = <realmname>
Nur der CALC-Bereich, der im angegebenen Realm liegt, wird reorganisiert.
POPULATION = *UNCHANGED
Es wird nur eine PPP-Aktualisierung durchgeführt.
Eine PPP-Aktualisierung ist sinnvoll für indirekte LOCATION MODE CALC-Bereiche.
POPULATION = <integer 1..2147483647>
Der betroffene CALC-Bereich wird neu aufgebaut. Die Anzahl der angegebenen Einträge wird umgerechnet in Anzahl von Seiten. Anschließend wird die Seitenzahl auf die nächste größere Primzahl (= Größe des Hashbereiches in Datenbankseiten) gerundet.
In indirekten CALC-Bereichen werden zusätzlich die Probable Position Pointer (PPP) aktualisiert.
CALC-SEARCHKEY = NONE
Die SEARCH KEY USING CALC-Bereiche, die zu der Satzart gehören, werden nicht reorganisiert.
CALC-SEARCHKEY = list-poss(30): *KEY-POPULATION (...)
Die CALC-Bereiche der angegebenen KEYs werden reorganisiert.
KEY-REF = *ALL
Alle CALC SEARCH KEY-Bereiche werden reorganisiert.
KEY-REF = <integer 1..65535>
Nur der CALC SEARCH KEY-Bereich mit der angegebenen KEY REF wird reorganisiert. Die KEY REF kann aus dem BPSIA-Protokoll entnommen werden.
POPULATION = *STD
Der betroffene CALC-Bereich wird neu aufgebaut. Falls ein LOCATION MODE CALC-Bereich vorhanden ist, wird die neue Größe des SEARCH KEY USING CALC-Bereiches aus der Größe des LOCATION MODE CALC-Bereiches ermittelt bzw. bei verteilten CALC-Bereichen aus der Summe der Größen der LOCATION MODE CALC-Bereiche berechnet. Gibt es keinen LOCATION MODE CALC-Bereich, orientiert sich die Größe an der DBTT-Größe der Satzart.
POPULATION = *UNCHANGED
Es wird nur eine PPP-Aktualisierung durchgeführt.
POPULATION = <integer 1..2147483647>
Der betroffene CALC-Bereich wird in der angegebenen Größe neu aufgebaut. Die errechnete Seitenzahl wird auf die nächste größere Primzahl gerundet. Zusätzlich werden Probable Position Pointer (PPP) aktualisiert.
Wird in einer Liste derselbe REALM oder dieselbe KEY REF mehrfach angegeben, gilt die letzte Angabe. Wird in einer Liste *ALL für REALM oder KEY REF angegeben, gilt die Angabe *ALL.
LOCATION MODE CALC-Bereiche reorganisieren
Sätze einer Satzart, die mit LOCATION MODE IS CALC definiert ist, werden in der Regel in der Datenbank in einem Hashbereich gespeichert. Ihre Adresse in diesem Hashbereich errechnet der Database Handler aus dem jeweiligen CALC-Key und der Größe des Bereichs.
Im „indirekten“ Hashbereich werden nur Tabellen-Einträge bestehend aus CALC-Key, RSQ und Probable Position Pointer (PPP) gespeichert. Solche indirekten Hashbereiche werden bei einer LOCATION MODE CALC-Angabe erzeugt, wenn die Satzart Member in einem mit MODE IS LIST spezifizierten Set ist oder in der SSL für die Satzart PLACEMENT OPTIMIZATION definiert wurde oder in der SSL für die Satzart COMPRESSION FOR ALL ITEMS spezifiziert wurde.
Zum Reorganisieren berechnet BREORG aus der POPULATION-Angabe die Größe des neuen Hashbereichs und reserviert die errechnete Anzahl von Seiten. Dann errechnet er für jeden Satz bzw. Tabellen-Eintrag die Adresse im neu zugewiesenen Hashbereich und überträgt ihn dorthin. Die Seiten des alten Hashbereiches sind nach dem Reorganisieren wieder für andere Zwecke verfügbar.
Dadurch lässt sich die Verteilung der Einträge im Hashbereich ändern und das Anlegen von Überlaufseiten vermeiden. Eine Übersicht über Anzahl und Füllgrad der Primärseiten und der Überlaufseiten des neu angelegten Hashbereichs sollten Sie sich nach dem Reorganisieren von BSTATUS ausgeben lassen!
Die Anzahl der Einträge in der DBTT der betroffenen Satzart ändert BREORG nicht, trägt jedoch bei direktem Hashbereich in Spalte 0 der DBTT, die die physische Adresse der Sätze enthält, die neue physische Adresse des jeweiligen Satzes ein.
CALC SEARCH KEY-Bereiche reorganisieren:
Ein CALC SEARCH KEY-Bereich enthält nicht die Datensätze selbst, sondern Tabellen-Einträge, die pro Eintrag den CALC-Key, die RSQ (Record Sequence Number) und den Probable Position Pointer (PPP) des jeweiligen Datensatzes enthalten.
Beim Reorganisieren von CALC SEARCH KEYs sind drei Fälle zu unterscheiden:
Sie haben POPULATION = STD angegeben:
BREORG bestimmt die neue Größe des CALC SEARCH KEY-Bereiches selbst.
Ist für die Satzart LOCATION MODE IS CALC spezifiziert worden, so wird diese Größe - bei verteilter Satzart die Summe aller Bereiche - genommen, um die Population zu ermitteln. Im anderen Fall wird die Größe der DBTT (Anzahl Einträge) als POPULATION-Angabe genutzt.Sie haben POPULATION = UNCHANGED angegeben:
BREORG aktualisiert die Probable Position Pointer (PPP) der Tabellen-Einträge. Die Verteilung der Tabellen-Einträge im Primärbereich und in den Überlaufseiten bleibt dieselbe.
Ein Anpassen der Probable Position Pointer kann z.B. notwendig werden, wenn sich die Positionen der Sätze als Member eines LIST-Sets während der Verarbeitung in der Datenbank verändert haben.
Sie haben bei POPULATION = INTEGER ... einen neuen Wert angegeben:
BREORG berechnet aus der POPULATION-Angabe die Größe des neuen Hashbereichs und reserviert eine entsprechende Folge zusammenliegender Seiten.
Anschließend überträgt er die Tabellen-Einträge in die neu zugewiesenen Seiten und aktualisiert gleichzeitig ihre Probable Position Pointer (PPP). Da BREORG die Tabellen-Einträge jeweils neu anlegt, bewirkt das Übertragen eine Neuverteilung auf Primärbereich und Überlaufseiten.Die ursprünglich reservierten CALC-Seiten gibt BREORG während des Reorganisierens wieder frei.
Da die Datensätze selbst beim Reorganisieren der CALC SEARCH KEY-Bereiche nicht umgespeichert werden, ändert sich auch die Information in der entsprechenden DBTT nicht.
Größe eines neuen Hashbereichs bestimmen
Die Anzahl der CALC-Seiten, die BREORG auf Grund einer POPULATION-Angabe neu zuweist, können Sie mit folgenden Formeln berechnen:
für einen indirekten Hashbereich
bei 2 Kbyte
2018 / (calc-key-länge + 7) = einträge-pro-seite 1
bei 4 Kbyte
3970 / (calc-key-länge + 10) = einträge-pro-seite 1
bei 8 Kbyte
8066 / (calc-key-länge + 10) = einträge-pro-seite 1
und
(ganzzahl - 1 / einträge-pro-seite) + 1 = seitenanzahl 2
für einen direkten Hashbereich
bei 2 Kbyte
2018 / (satzlänge + calc-key-länge + 15) = einträge-pro-seite 1
bei 4 Kbyte
3970 / (satzlänge + calc-key-länge + 22) = einträge-pro-seite 1
bei 8 Kbyte
8066 / (satzlänge + calc-key-länge + 22) = einträge-pro-seite 1
und
(ganzzahl - 1 / einträge-pro-seite) + 1 = seitenanzahl 2
1Ergebnis ist abzurunden
2Ergebnis ist aufzurunden auf die nächsthöhere Primzahl, wenn sich keine Primzahl ergibt
seitenanzahl
Anzahl der Seiten des Hashbereichs
calc-key-länge
Länge des CALC-Key (siehe "CALC INFORMATION")
ganzzahl
neue Menge an Datensätzen laut POPULATION-Angabe
satzlänge
Länge der Satzart (Benutzerteil und Systemteil) (siehe "RECORD INFORMATION" ff)
einträge-pro-seite
Anzahl der Einträge (Sätze oder CALC-Tabellen-Einträge) pro Seite
Wenn der Realm, der vom Reorganisieren betroffen ist, mit einer Sekundärzuweisung = 0 eingerichtet ist, z.B. weil Sie keine automatische Realm-Erweiterung wünschen, müssen Sie darauf achten, dass in diesem Realm, ausreichend zusammenhängende leere Seiten (mindestens seitenanzahl Seiten) für den neuen Hashbereich zur Verfügung stehen! Da der alte Hashbereich wieder verwendet werden kann, darf er als freier Bereich betrachtet werden. Wenn der Realm mit einer Sekundärzuweisung > 0 eingerichtet ist, dann erweitert BREORG den betroffenen Realm bei Bedarf automatisch.
Ablaufmeldungen
Nach dem Ausführen der Anweisung REORGANIZE-CALC wird das Ergebnis der CALC-Reorganisation der Satzart und der CALC SEARCH KEYs im Set, der Satzart oder der CALC SEARCH KEYs im Set ausgegeben.
|
|
recordname
Name der reorganisierten Satzart
setname
Name des reorganisierten Sets
area ref - seiten nr
Act-Key der ersten CALC-Seite
number pages
bei NEW NR OF PRIMARY BUCKETS: neue Anzahl der CALC BUCKETS
bei NEW NR OF OVERFLOW BUCKETS: neue Anzahl der Überlaufseiten
number physical io
Anzahl der Ein- und Ausgaben