Regeln optimieren: Ein Beispiel

Nachdem Sie die Durchgänge, die optimiert werden müssen, identifiziert haben, bearbeiten Sie die Geschäftsregel. Stellen Sie sicher, dass die optimale Logik und optimale Bedingungen für jeden Durchgang angegeben werden.

Betrachten Sie die folgende Geschäftsregeldefinition, die zwei YTD-Konten berechnet und die Werte dann über die Produkt- und Entity-Dimensionen aggregiert:

SET UPDATECALC OFF;
/* PASS 1 BEGINS*/  
FIX ("BaseData","Plan","FY17",  "FY17" "FY16")
      "BU Version_1"(
          IF(@ismbr("Jan"))
             "4110_YTD" = "4110"; "4120_YTD" = "4120"; "4130_YTD" = "4130";
             "4140_YTD" = "4140"; "4150_YTD" = "4150";
          Else
             "4110_YTD"="4110" + @prior("4110_YTD"); "4120_YTD"="4120"
                                                                + @prior("4120_YTD");
             "4130_YTD"="4130" + @prior("4130_YTD"); "4140_YTD"="4140"
                                                                + @prior("4140_YTD");
             "4150_YTD"="4150" + @prior("4150_YTD");
          Endif)
  /*  PASS 1 ENDS -- PASS 2 BEGINS*/
      Agg("Entity","Product");
  /*  PASS 2 ENDS */
 ENDFIX

Wenn diese Regel in Calculation Manager (siehe Bereiche zur Regeloptimierung identifizieren) ausgeführt wird, wird in der Registerkarte Logmeldung eine Meldung ähnlich der folgenden angezeigt, wenn Nur Durchgang ausgewählt ist:
Beispielmeldung, die beim Ausführen einer Regel mit der Option "Nur Durchgang" angezeigt wird

Eine Analyse der Informationen in der Logdatei gibt an, dass 99,995 % der Ausführungszeit (79,235 Sekunden) für Durchgang 1 belegt wird und nur 0,005 % für Durchgang 2.

Wenn Sie die Auswahl von Nur Durchgang aufheben, werden Blöcke, sowie Informationen zu Lese- und Schreibvorgängen ähnlich wie in der folgenden Abbildung angezeigt:
Beispielmeldung, die beim Ausführen einer Regel ohne die Option "Nur Durchgang" angezeigt wird

Die vorhergehende Regeldefinition weist folgende Probleme auf:

  • Sie verfügt über keinen FIX bei Entity- und Produktdimensionen, sodass alle Regeln auf allen Ebenen der Entity- und Produktdimensionen ausgeführt werden müssen.

  • Durchgang 1 berechnet die oberen Ebenen unnötig. Die Agg-Funktion in Durchgang 2 führt diesen Schritt aus und überschreibt die Schritte von Durchgang 1.

Das Skript kann wie folgt optimiert werden:

SET UPDATECALC OFF;
FIX ("BaseData","Plan","FY17")

/* PASS 1 BEGINS*/

        Fix(@LEVMBRS("Entity",0), @LEVMBRS("Product",0))
                "BU Version_1"(
                        IF(@ismbr("Jan"))
                                "4110_YTD" = "4110";
                                "4120_YTD" = "4120";
                        Else
                                "4110_YTD"="4110" + @prior("4110_YTD");
                                "4120_YTD"="4120" + @prior("4120_YTD");
                        Endif)
        ENDFIX
/*  PASS 1 ENDS --  PASS 2 BEGINS*/

    Agg("Entity","Product");

/*  PASS 2 ENDS */

ENDFIX

Bei Ausführung der aktualisierten Regel in Calculation Manager (siehe Bereiche zur Regeloptimierung identifizieren) wird in der Registerkarte Logmeldung eine Meldung ähnlich der folgenden angezeigt:


Beispielmeldung, die beim Ausführen einer festen Regel angezeigt wird

Eine Analyse der Informationen in der Logdatei gibt an, dass die Ausführungszeit in Durchgang 1 15,901 Sekunden niedriger ist als im vorherigen Durchgang.

Wenn Sie die Auswahl von Nur Durchgang aufheben, werden Blöcke, sowie Informationen zu Lese- und Schreibvorgängen ähnlich wie in der folgenden Abbildung dargestellt, für Durchgang 1 angezeigt:
Beispielmeldung, die beim Ausführen einer festen Regel ohne die Option "Nur Durchgang" angezeigt wird

Ein Vergleich der Blöcke sowie Lese- und Schreibinformationen mit ähnlichen Daten aus der Vor-Optimierung ergibt eine übergreifende Reduzierung in der Verarbeitungsstatistik der Geschäftsregel.