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