Kapitelübersicht
10. Tuning
10.1 Interner Ablauf einer Auswertung
10.2 Auspraegungsergaenzung bei Online-Auswertungen
10.3 Die Schluessel- und Arbeitsgebietscaches
10.3.1 Aufbau und Aufgabe der Schluesselcaches
10.3.2 Erzeugen und Loeschen der Schluesselcaches PCL1089
10.3.3 Cache fuer Arbeitsgebiete PCL1046
10.4 Lesen von Verdichtungsstufen
10.4.1 Lesestrategien auf die Summendatenbank
10.4.2 Auswahl von Verdichtungsstufen in der Auswertung
10. Tuning
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
10.1 Interner Ablauf einer Auswertung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Wird eine Anforderung bearbeitet, so werden die
folgenden Schritte durchlaufen:
- Pruefen auf formale Richtigkeit
Als erstes wird die Anforderung daraufhin ueberprueft,
ob sie formal richtig ist (z.B. sind Werte angefordert,
sind die Zeiten richtig angefordert etc.). Diese
Syntaxpruefung erfolgt im Programm MCL0016.
- Pruefen auf logische Richtigkeit
Im zweiten Schritt wird geprueft, ob die Anforderung
logische Fehler enthaelt (Semantikpruefung). Gleich-
zeitig werden interne Tabellen aufgebaut, in denen
die benoetigten Informationen ueber Schluessel, Aus-
praegungen, Werte, Zeiten etc. abgelegt werden. Diese
Informationen muessen aus den Parameterdatenbanken
gelesen werden. Dies kann bei groesseren Arbeitsge-
bieten und bei Massenschluesseln zu einer grossen An-
zahl von Datenbank-Zugriffen fuehren und dadurch die
Performance gerade bei Online-Auswertungen stark
beeintraechtigen. Deswegen besteht die Moeglichkeit,
Arbeitsgebiets- und Schluesselcaches einzurichten, die
die Datenbankzugriffe reduzieren (siehe Kap. 10.3).
Dafuer ist das MCL0017 mit Unterprogrammen zustaendig.
- Verarbeitung der Summensaetze festlegen
Als naechstes wird die Verarbeitung der Summensaetze
festgelegt. Es wird bestimmt, welche Verdichtungs-
stufen mit welcher Lesestrategie zu verarbeiten sind
(siehe Kap. 10.3). Dies geschieht im MCL0008.
- Lesen der Summensaetze
Weiter werden dann im MCL0009 die Summensaetze gelesen
und in eine interne Tabelle verteilt. Dabei werden nur
die 'echten' Werteeintraege beruecksichtigt.
- Berechnungen durchfuehren
Formeln, Sternsummen, Funktionen etc. werden danach
im MCL0010 (und Unterprogrammen) berechnet. Dabei
wird die interne Tabelle (aus MCL0009) strikt von
oben nach unten abgearbeitet.
- Statistik aufbereiten
Zuletzt wird die berechnete Statistik aufbereitet
(Anzeige von Bezeichnung, Abkuerzung, Spaltenbreiten
festlegen etc.) und ausgegeben (MCL0006).
10.2 Auspraegungsergaenzung bei Online-Auswertungen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Es gibt Auswertungsituationen, in denen ein Massen-
schluessel angefordert wurde, ohne dass gleichzeitig bei
ihm Auspraegungen selektiert wurden. Ausserdem wurden
bei einem weiteren Schluessel einige Auspraegungen
ausgewaehlt. Aufgrund der logischen Zusammenhaenge fuehrt
dies dazu, dass bei dem Massenschluessel nur wenige
Schluesselinhalte tatsaechlich benoetigt werden (z.B.
will man in einer Statistik alle Vertreter einer Agentur
sehen).
In solchen Situationen wird standardmaessig eine interne
Tabelle aufgebaut, die alle Auspraegungen des Massen-
schluessels enthaelt. Dies kann bei Online-Auswertungen
dazu fuehren, dass die Auswertung nicht mehr ausgefuehrt
werden kann, da die Tabellen zu gross werden. Deswegen
gibt es die Moeglichkeit, das sogenannte Aufsammeln von
Auspraegungen zu aktivieren. Dabei wird in die interne
Auspraegungstabelle nur eine vorgegebene Anzahl von
Inhalten eingelesen. Ansonsten werden die Auspraegungen,
die noch nicht in der Tabelle stehen, zu denen aber
Summendaten gelesen wurden, ergaenzt, wenn die ent-
sprechenden Summensaetze gelesen wurden.
Diese Tuningmoeglichkeit fuehrt andererseits dazu, dass
die Schluesselvariation nicht mehr zum Tragen kommt, da
ja die Auspraegungstabelle nicht vollstaendig sein kann.
Ausserdem kann aus den Summensaetzen nur der verdichtete
Inhalt ermittelt werden, es muss also zusaetzlich eine
Umschluesselung des verdichteten Inhalts auf den eigent-
lichen Inhalt erfolgen. Das Ergaenzen von Auspraegungen
fuehrt auch dazu, dass die internen Tabellen nicht in der
Reihenfolge vorliegen, wie es die Auswertung erfordert,
d.h. sie muessen noch sortiert werden. Aus diesen Gruen-
den sollte die Grenze, ab der auf das Aufsammeln von
Auspraegungen umgeschaltet wird, nicht zu klein sein.
Die Umstaende, unter denen mit Auspraegungsergaenzung
gearbeitet wird, koennen installationsabhaengig gesteuert
werden. Dazu ist das Include SST1121 entsprechend anzu-
passen. Die Variable KEVINH_ERGAENZ_MAX gibt an, wieviele
Auspraegungen zu einem Schluessel maximal eingelesen
werden. Die Grenze, bei der auf das Aufsammeln von Aus-
praegungen umgeschaltet wird, wird durch die Variable
KEVINH_PROBIER_MAX festgelegt. Bis zu dieser Angabe wer-
den zunaechst die Auspraegungen in die internen Tabellen
eingelesen. Sind dann nicht alle Inhalte des Schluessels
eingelesen, so wird auf Auspraegungsergaenzung umgeschal-
tet. Soll die Auspraegungsergaenzung aktiviert werden, so
ist es empfehlenswert, zugleich die Anzahl der theore-
tisch zulaessigen Statistikzeilen hochzusetzen, da bei
ihrer Berechnung von der Anzahl Auspraegungen allgemein,
aber nicht von den tatsaechlich benoetigten Anzahl ausge-
gangen wird. Im Include SST2043 wird durch die Variable
TABNR_MAX eine Grenze fuer die theoretische Anzahl der
Statistikzeilen festgelegt. Sie sollte vergroessert
werden.
In der Praxis haben sich folgende Groessen bewaehrt:
KEVINH_ERGAENZ_MAX 400 - 600
KEVINH_PROBIER_MAX 100 - 150
TABNR_MAX 2000000000
Die technische Installaion ist im Handbuch INSTALLATION,
Kap. 5.5.8, beschrieben.
10.3 Die Schluessel- und Arbeitsgebietscaches
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
10.3.1 Aufbau und Aufgabe der Schluesselcaches
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
ASS bietet dem Benutzer die Moeglichkeit, sogenannte
Schluessel- oder Auspraegungscaches anzulegen. Diese
Caches sind Massen- bzw. Sammelspeicher fuer die Aus-
praegungen eines Schluessels. Dementsprechend werden
sie in der Schluesseldatenbank (in den Segmenten
SST015CK und SST016CL) abgelegt, und zwar sind sie
dem Schluessel logisch untergeordnet. Die Caches werden
je nach der Informationsmenge, die sie enthalten, als
kurzer und langer Cache bezeichnet.
Schluesselcaches sind bei Schluesseln mit interner
Laenge 3 oder 4 nicht moeglich. Das unten beschriebene
Zugriffsverhalten auf Schluesselauspraegungen gilt
nur fuer Schluessel der internen Laenge 1 oder 2.
Bei Schluesseln der internen Laenge 3 oder 4 wird ganz
anders zugegriffen.
Der prinzipielle Aufbau der Caches sei nun am kurzen
Cache beschrieben: In ihm wird nur der verdichtete Schlues-
selinhalt und der Schluesselinhalt in variabler Laenge
zusammen mit einem Laengenfeld abgespeichert. Im An-
schluss folgen die entsprechenden Informationen der
naechsten Auspraegung. Dies geschieht solange, bis die
maximale Satzlaenge des Segments erreicht wird. Die
folgenden Auspraegungen werden dann im naechsten Segment
abgelegt.
Der lange Cache enthaelt darueber hinaus noch Informa-
tionen ueber Inhaltsbezeichnung, Inhaltskurzbezeichnung,
Gueltigkeitsdaten und bei hierarchischen Schluesseln die
uebergeordnete Auspraegung, teilweise auch wieder in
verkuerzter Form. Der prinzipielle Aufbau ist derselbe
wie beim kurzen Cache.
Die Caches dienen dazu, waehrend einer Auswertung die
Performance zu verbessern. Dies sei am besten an einem
Beispiel erlaeutert: In manchen Situationen, wie z.B.
bei der Behandlung von Auspraegungsmengen oder dem Auf-
sammeln von Auspraegungen, muessen ohne den Cache saemt-
liche Auspraegungen zu einem Schluessel gelesen werden.
Bei einem Schluessel mit 20000 Auspraegungen (z.B.
Kundennr.) sind also 20000 Lesezugriffe auf die Schlues-
seldatenbank noetig. Diesselbe Information kann aber
unter Verwendung des (z.B.) kurzen Caches bereits in
einigen hundert Saetzen der Schluesseldatenbank abgelegt
werden. Die Anzahl der Lesezugriffe zur Schluessel-
datenbank kann damit deutlich reduziert werden.
Da bekanntlich Zugriffe auf eine Datenbank relativ viel
Zeit brauchen, kann dadurch in kuerzerer Zeit eine
Auswertung ausgefuehrt werden. Dies macht sich insbe-
besondere im Online-Betrieb positiv bemerkbar.
Die Schluesselcaches werden von ASS nicht automatisch
gepflegt, d.h. der Benutzer muss selbst entscheiden, ob
zu einem Schluessel die Caches angelegt werden sollen.
Bei Aenderungen bei den Auspraegungen wird der zuge-
hoerige Cache ungueltig.
Ob Caches angelegt oder geloescht werden sollen, wird ASS
in der Transaktion ST06 mitgeteilt. (s. entsprechendes
Handbuch). Diese Information wird in der Schluessel-
datenbank abgelegt. Die Caches muessen mit dem Programm
PCL1089 angelegt bzw. geloescht werden (s.u.). Das
Einrichten eines Caches fuer einen Schluessel lohnt sich
praktisch nur, um Online-Auswertungen zu beschleunigen.
Der Cache beschleunigt folgende Auswertungstypen:
- es werden alle Auspraegungen angefordert.
- es wird mit Auspraegungmengen oder mit
?-Maskierung gearbeitet.
- es werden alle Auspraegungen angefordert,
aber es existieren nur Zahlen zu einem kleinen
Teil der Auspraegungen (z.B. alle Lieferscheine
zu einer vorgegebenen Kundennummer, wobei die
existierenden Lieferscheine zu der vorgegebenen
Kundennummer erst beim Lesen der Summendaten
ermittelt werden), (Auspraegungen aufsammeln,
nur ONLINE).
Gibt es Aenderungen bei den Auspraegungen, wird von ASS
eine Kennzeichnung in der Schluesseldatenbank mitge-
pflegt, aus der ersichtlich ist, ob die Caches noch dem
aktuellen Stand der Auspraegungen entsprechen. Diese
Kennzeichnung kann ebenfalls ueber die Transaktion ST06
abgerufen werden. Sind die Caches nicht auf dem aktuellen
Stand, so koennen sie wieder mit dem Programm PCL1089
aktualisiert werden.
Wird also z.B. bei einem Schluessel mit automatischer
Auspraegungsergaenzung gearbeitet, so empfiehlt es sich,
nach jeder Folgeeinspeicherung PCL1089 laufen zu lassen.
10.3.2 Erzeugen und Loeschen der Schluesselcaches PCL1089
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
FUNKTIONSBESCHREIBUNG:
---------------------
Mit dem Programm PCL1089 koennen Schuesselcaches erzeugt
oder geloescht werden.
Die Information, ob zu einem Schluessel Caches erzeugt
bzw. geloescht werden sollen, entnimmt das Programm der
Schluesseldatenbank (Segment SST011KY) (siehe auch
Handbuch ST06).
Ist das Kennzeichen auf 'T' oder 'A' gesetzt, so werden
zu dem betreffenden Schluessel der lange und der kurze
Cache erzeugt.
Beim Kennzeichen 'D' werden die Caches geloescht.
Ausserdem wird die Kennzeichnung dem neuen Zustand der
Caches angepasst.
Es empfiehlt sich, PCL1089 immer dann laufen zu lassen,
wenn sich in der Schluesseldatenbank bei den Schlues-
selauspraegungen etwas geaendert hat.
Dies ist in folgenden Faellen moeglich:
- bei Aenderungen im Dialog mit Transaktion ST06
- bei Folgeeinspeicherungen
- beim Zurueckladen eines Arbeitsgebiets mit PCL1005
- beim Erfassen von Auspraegungen mit PCL1036
- beim Loeschen von Auspraegungen mit PCL1055
- bei der Reorganisation der internen Schluessel-
inhaltsnummern mit PCL1058
ABLAUF:
------
.---.
,' ', Nr. ! DD-Name ! Beschreibung
!'.___.'! ----------------------------------
! ! 1 ! DST002 ! Schluessel-DB
! 1 ! ! DST021 ! Primaerindex
! ! ! DST022 ! 1. Sekundaer-
'.___.' ! DST023 ! 2. index (nur DLI)
! ! !
! 2 ! DST002 ! Schluessel-DB
V ! DST021 ! Primaerindex-
*************** ! DST022 ! 1. Sekundaer-
! ! ! DST023 ! 2. index (nur DLI)
! PCL1089 ! ! !
! ! 3 ! PROTO ! Protokoll
***************
! !
! +-------+
! !
V V
.---. *************
,' ', ! !
!'.___.'! ! 3 !
! ! ! !
! 2 ! ! /*****
! ! ******/
'.___.'
10.3.3 Cache fuer Arbeitsgebiete PCL1046
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Der Cache fuer Arbeitsgebiete dient zur Verbesserung
der Performance beim lesenden Zugriff auf die
Steuerungsdatenbank im Rahmen der Auswertung.
Die Optimierung wird dadurch erreicht, dass mehrere
Saetze der Steuerungsdatenbank zu einem neuen Satz
zusammengefasst werden. Dies wird durch das
Dienstprogramm PCL1046 erledigt. Jede Aenderung eines
Arbeitsgebiets (z.B. durch ST06, Plandaten/Vorgabewerte
in der ST31 und Batchprogramme) wird also erst
nach einem erneuten Lauf von PCL1046 wirksam.
Soll der Cache benutzt werden, so sollte er
taeglich kurz vor Beginn des ONLINE-Betriebs neu mit
PCL1046 erstellt werden.
Zur Zeit ist der Cache fuer Arbeitsgebiete nur in einer
DLI-, DB2- oder VSAM-Installation verfuegbar.
Bei PC-Isam wird standarmaessig mit dem Cache fuer
Arbeitsgebiete gearbeitet.
Der Cache fuer Arbeitsgebiete liegt physisch auf der
SPA-Datenbank (DST005) und wird dort von dem
Dienstprogramm PCL1046 aktualisiert. Im Cache werden
die verwendeten Schluessel, Verdichtungsstufen, Werte
und gegebenenfalls der Schluesselausschluss
gespeichert. Da der Cache pro Arbeitsgebiet in der
Groesse beschraenkt ist, listet das Dienstprogramm
PCL1046 zu jedem Arbeitsgebiet an, zu welchem
Prozentsatz der Cache gefuellt ist. Ist fuer ein
geprueftes Arbeitsgebiet der Cache zu klein, so bricht
das Programm mit einer entsprechenden Meldung ab und ab
diesem Arbeitsgebiet einschliesslich ist der Cache nicht
mehr vorhanden.
Im Handbuch "Installation" ist beschrieben wie die
Groesse des Cache berechnet werden kann und wie er
gegebenenfalls vergroessert werden kann. Im Protokoll
des Dienstprogramm PCL1046 wird auch angelistet zu
wieviel Prozent der Cache pro Arbeitsgebiet belegt wird.
Wie der Cache wirksam wird, steht ebenfalls im
Handbuch "Installation".
Ablauf von PCL1046
AG-DB
____!
!
PCL1046
____!____
! !
ASSLIST SPA-DB
Dateibeschreibung:
ASSLIST Protokoll in der Form FBA 133
Eine Vorlaufkarte gibt es nicht.
10.4 Lesen von Verdichtungsstufen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
10.4.1 Lesestrategien auf die Summendatenbank
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Um die Bearbeitungszeit von ASS waehrend einer Auswertung
niedrig zu halten, muessen die Informationen aus den
Verdichtungsstufen moeglichst effizient, d.h. mit
wenigen Zugriffen, gelesen werden. Aus diesem Grund
kennt ASS fuenf verschiedene Lesestrategien:
- Sequentielles Lesen
---------------------
Das sequentielle Lesen ist die einfachste Form, eine
Verdichtungsstufe auszuwerten. Hierbei werden alle
Saetze einer Verdichtungsstufe sequentiell gelesen und
verarbeitet. Diese Methode wird angewandt, wenn z.B.
keine Auspraegungen selektiert werden oder die Daten der
betreffenden Verdichtungsstufe auf einer sequentiellen
Datei gespeichert sind. Sie wird darueber hinaus immer
dann verwendet, wenn die nachfolgend beschriebenen
Lesestrategien nicht moeglich sind.
Die Zahl der erforderlichen Zugriffe ist gleich der
Anzahl der Saetze in der Verdichtungsstufe. Bei umfang-
reichen Verdichtungsstufen ist somit eine Online-
Auswertung nicht moeglich.
- Direktes Lesen mit Schluesselvariation
----------------------------------------
Werden in einer Anforderung einzelne Auspraegungen eines
Schluessels selektiert, kann die Anzahl der erforder-
lichen Zugriffe meist durch direktes Lesen mit Schlues-
selvariation deutlich verringert werden. Hierbei wird zu
jedem Schluessel der Verdichtungsstufe eine Auspraegung
ausgewaehlt, wobei man sich jedoch bei angeforderten
Schluesseln auf die gewuenschten Auspraegungen be-
schraenkt. Diese werden dann verknuepft und als Index
zum direkten Lesen der Verdichtungsstufe verwendet. Dies
wird fuer alle moeglichen Kombinationen der zu den
jeweiligen Schluesseln gehoerenden Auspraegungen
durchgefuehrt.
Dementsprechend erhaelt man die Anzahl der erforder-
lichen Zugriffe, indem man fuer jeden Schluessel der
Verdichtungsstufe die Zahl der Auspraegungen miteinander
multipliziert. Dazu ein
Beispiel:
--------
Verdichtungsstufe
Schluessel Niederl. Produkt Kundengr.
Zahl Auspraegungen 50 20 5
Auspraegungen NL1 P1 KG1
. . .
. . .
NL50 P20 KG5
In dieser Verdichtungsstufe seien 4000 Saetze
vorhanden, d.h von den 5000 moeglichen Auspraegungs-
kombinationen gibt es zu 1000 keine Werte. Weiter
liege folgende Anforderung vor:
Niederlassung=(NL3,NL15), Produktgruppe=(PG5,PG6,PG7)
Damit ergibt sich die Zahl der Zugriffe aus
Auspraegungen(Niederl.)xAuspr(Produkt)xAuspr(Kundengr)
also Zugriffe = 2 x 3 x 5 = 30
Dieses Produkt ist oft groesser als die Anzahl der
Saetze in der Verdichtungsstufe, weil meistens nicht
fuer alle Auspraegungskombinationen Werte vorhanden
sind.
- Positionieren auf den 'linkesten' Schluessel
(stueckweise sequentielles Lesen)
----------------------------------------------
Als weitere Lesestrategie ist das stueckweise sequen-
tielle Lesen der Verdichtungsstufe moeglich. Bei dieser
Strategie wird fuer den Schluessel, der am weitesten
links in der Verdichtungsstufe steht und ausgepraegt
ist, eine gewuenschte Auspraegung als Index ver-
wendet und mit dieser in der Verdichtungsstufe direkt
positioniert. Danach wird solange sequentiell gelesen,
bis in der Verdichtungsstufe eine neue Auspraegung fuer
den 'linkesten' Schluessel auftritt. Bei dieser
Zugriffsvariante wird die Zahl der erforderlichen
Zugriffe mit folgender Formel geschaetzt:
Zahl Zugriffe =
Anzahl Saetze in
Verdichtungsstufe
---------------------- x 2 x Selektierte Auspraegungen
Anzahl Auspraegungen 'linkester' Schluessel
'linkester' Schluessel (*)
In dieser Schaetzung wird davon ausgegangen, dass die
Auspraegungen (*) in der Verdichtungsstufe gleichmaessig
verteilt sind. Es gibt jedoch Faelle, in denen diese
Annahme verletzt wird. Es gibt z.B. bei einem Schluessel
'Vertreter' 10000 Auspraegungen, in dem Arbeitsgebiet
werden aber fuer nur 1000 Auspraegungen Werte gepflegt.
In solchen Faellen liefert die Schaetzung zu kleine
Zahlen fuer die Zugriffszahl. Dies hat laengere Lauf-
zeiten zur Folge, die im Online-Betrieb nicht gewuenscht
werden. Um dies berichtigen zu koennen, kann (*) in der
Formel ueberschrieben werden. Dazu ist in der Trans-
aktion ST06 die ungefaehre Anzahl der im Arbeitsgebiet
verwendeten Auspraegungen eines Schluessels anzugeben
(s. Handbuch ST06).
- Positionieren auf die 'linkesten' Schluessel
mit Schluesselvariation
----------------------------------------------
Diese Methode kombiniert die Methode der Schluessel-
variation mit der Methode des stueckweise sequentiellen
Lesens. Diese Methode wird am besten an einem Beispiel
verdeutlicht:
Es wird das Beispiel aus der Schluesselvariation
betrachtet. Die betrachtete Verdichtungsstufe enthalte
rechts von der Kundengruppe noch weitere Schluessel,
so dass eine reine Schluesselvariation nicht mehr
in Betracht kommt.
Es liege folgende Anforderung vor:
Niederlassung=(NL3,NL15), Kundengruppe=(KG1)
Folgende Datensaetze koennen Information enthalten:
NL3 P1 KG1
NL3 P2 KG1
.
.
.
NL3 P20 KG1
NL15 P1 KG1
NL15 P2 KG1
.
.
.
NL15 P20 KG1.
Es gibt also insgesamt 2 * 20 * 1 = 40 Kombinationen.
Da nicht bekannt ist, welche Auspraegungen rechts
von der Kundengruppe vorkommen, wird jede der
genannten Kombinationen stueckweise sequentiell
ausgewertet. Hierbei ist zu beachten, dass nicht nur
ueber den linkesten, sondern ueber die drei linkesten
Schluessel positioniert wird (compound key).
Im obigen Beispiel wird also 40-mal stueckweise
sequentiell gelesen.
Die Schaetzformel fuer die Anzahl der Zugriffe ist
eine Kombination aus der Anzahl Zugriffe fuer die
Variation mit der Schaetzung fuers stueckweise se-
quentielle Lesen.
Die obige Methode kann auch zum Einsatz kommen,
wenn zwischen Niederlassung und Kundengruppe
verdichtete Schluessel enthalten sind. Ebenso kann
diese Methode zum Einsatz kommen, wenn "linkeste"
Schluessel einer Verdichtungsstufe nicht angefordert
werden, sie jedoch so wenig Auspraegungen besitzen,
dass eine Variation noch moeglich ist.
- Ausnutzung von Schluesselrelationen
-------------------------------------
Sobald in einer Fragestellung zu einem selektierten
Schluessel, der nicht linkester Schluessel einer Ver-
dichtungsstufe ist, alle zugehoerigen Auspraegungen des
linkesten Schluessels angefordert werden, ist eine
Dialogauswertung mit den bisher bekannten Lesevarianten
im Normalfall nicht moeglich.
Es empfiehlt sich dann, mit Schluesselrelationen zu
arbeiten, die technisch aehnlich wie Verdichtungsstufen
in einem Arbeitsgebiet definiert werden.
In einer Schluesselrelation werden zwischen zwei und
zehn Schluessel des Arbeitsgebietes in einer bestimmten
Reihenfolge definiert, die von der ueblichen Hierarchie-
folge voellig abweichen kann.
Im Unterschied zu den Verdichtungsstufen werden bei
Schluesselrelationen keine Werteverwendungen definiert
und auch keine Summendaten gespeichert, sondern ledig-
lich die in den Summendaten enthaltenen Schluesselkom-
binationen.
Betrachtet man das obige Beispiel, so koennte man in
einer Relation die Schluessel PRODUKT und NIEDERLASSUNG
in dieser Reihenfolge definieren.
Nur die in den Summendaten vorkommenden Schluesselkom-
binationen werden gespeichert:
PRODUKT NIEDERLASSUNG
-------------------------
P1 NL1
NL5
P2 NL7
NL20
P3 NL5
Moechte man jetzt die Werte fuer das Produkt P1 in
allen Niederlassungen ermitteln, liefert die Relation
nur die beiden in den Summendaten enthaltenen Nieder-
lassungen NL1 und NL5.
Mit diesen beiden Auspraegungen des jetzt bekannten,
linkesten Schluessels der Verdichtungsstufe koennen die
Daten wiederum stueckweise sequentiell oder auch direkt
gelesen werden, wenn alle Schluessel des Arbeitsge-
bietes in der Relation beschrieben sind.
Unter diesen fuenf Lesestrategien einer Verdichtungs-
stufe waehlt ASS sich die guenstigste aus. Oft ist es
jedoch fuer eine Auswertung noetig, mehrere Verdich-
tungsstufen zu lesen, z.B. wenn Werte aus verschieden
Arbeitsgebieten angefordert werden. In diesem Fall wird
fuer jede Verdichtungsstufe die effektivste Lesestrate-
gie ausgewaehlt. Die Anzahl der Zugriffe ergibt sich
dann als Summe der Zugriffszahlen fuer die einzelnen
Verdichtungsstufen.
Durch geschickte Vergabe der Hierarchienummern und
durch geeignete Festlegung von Verdichtungsstufen
sowie deren Schluesselreihenfolgen beim Einrichten
eines Arbeitsgebietes (Transaktion ST06) kann
der Anwender erreichen, dass die verschiedenen
Lesestrategien vorteilhaft eingesetzt werden. Dabei
sollten z.B. haeufig benutzte Schluessel mit vielen
Auspraegungen, von denen i.a. nur einige angefordert
werden, moeglichst weit nach links gestellt werden, also
niedrige Hierarchienummern im Arbeitsgebiet erhalten
oder gezielt durch Aenderung der Schluesselreihenfolge
betroffener Verdichtungsstufen.
10.4.2 Auswahl von Verdichtungsstufen in der Auswertung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die Verdichtungsstufen, die fuer eine Auswertung
gelesen werden muessen, werden nach folgendem
Verfahren ermittelt:
1) Zunaechst werden fuer jeden angeforderten Wert die
Verdichtungsstufen ermittelt, die prinzipiell in Frage
kommen. Dies bedeutet, dass die (zu dem Wert) einge-
speicherten Zeiten zumindest einen Teil der angefor-
derten Zeiten abdecken und dass alle angeforderten
Schluessel in der Verdichtungsstufe ausgepraegt sind.
2) Fuer die unter 1) ermittelten Verdichtungstufen
werden die Zugriffszahlen ermittelt. Dabei werden die
unter 10.4.1 beschriebenen Lesestrategien durchgetestet
und die Zugriffszahl der guenstigsten Strategie
festgehalten.
3) Pro angeforderten Wert werden aus den unter 1) er-
mittelten Verdichtungsstufen die Mengen zu einer lo-
gischen Verdichtungsstufe zusammengefasst, wobei die
Zugriffe der einzelnen Verdichtungsstufen einer Menge
aufaddiert werden. Danach werden die Mengen nach den
Zugriffszahlen sortiert, um die Verdichtungsstufen-
(-mengen) mit den kleinsten Zugriffszahlen bevorzugen
zu koennen.
4) Die angeforderten Werte werden nach ihrer (nach 3))
guenstigsten Verdichtungstufe absteigend sortiert,
d.h. der Wert, dessen beste Verdichtungsstufe die
groesste Zugriffszahl besitzt, kommt an die erste
Stelle. TOTAL-Operanden werden an die Spitze dieser
Tabelle gesetzt.
5) Jetzt werden die zu benutzenden Verdichtungsstufen
ermittelt. Zunaechst werden fuer den ersten Wert die
Verdichtungstufen nach der Reihenfolge ihrer Zugriffs-
zahlen (s. 3)) ausgewaehlt, so dass alle angeforderten
Zeiten befriedigt werden koennen. Fuer die folgenden
Werte wird erst geprueft, ob eine bereits ausgewaehlte
Verdichtungsstufe verwendet werden kann. Ansonsten
werden analog zum ersten Wert die Verdichtungsstufen
ausgewaehlt.
6) Fuer jede der ausgewaehlten Verdichtungsstufen
wird die optimale Lesestrategie ermittelt:
Sequentielle Verdichtungsstufen und Verdichtungsstufen
fuer TOTAL-Operanden werden sequentiell gelesen. Bei
Verdichtungsstufen auf der Summendatenbank wird
zunaechst auf stueckweise sequentielles Lesen geprueft.
Danach wird festgestellt, ob Lesen mittels Relation
moeglich ist. Anschliessend wird auf Compound-Key-Lesen
getestet, und zwar der Reihe nach ueber die zwei, drei,
vier, etc. linkesten Schluessel. Zum Schluss wird noch
die Schluesselvariation getestet. Verbessert sich die
Zugriffszahl gegenueber einer zuvor getesteten Stra-
tegie, so wird auf die neue Leseregel geschaltet. Die
Zugriffe fuer eine Auswertung ist die Summe der Zugriffe
auf die benoetigten Verdichtungsstufen.
Vorheriges Kapitel: 9. Betrieb der ASS-Online-Security
Nächstes Kapitel: Stichwortverzeichnis