Zweistufige Berechnung

Für Elementformeln, die zweimal berechnet werden müssen, um den richtigen Wert zu erhalten, kann eine Zwei-Pass-Berechnung angewendet werden. Sie können ein Accountdimensionswert als Zweistufigkeit taggen, um die Performance für einige Blockspeicher-Essbase-Anwendungen zu verbessern.

Hinweis:

Verwenden Sie keine zweistufige Berechnung mit Hybridmodus-Cubes. Verwenden Sie nur Bestellung auflösen.

Bei einigen Anwendungen können Sie die Performance verbessern, indem Sie ein Account-Dimensionselement als Zweipass in der Gliederung taggen. Die Kombination von Daten und Berechnungsanforderungen kann jedoch die Verwendung eines Berechnungsskripts erfordern, um eine Formel zweimal zu berechnen, anstatt zweistufig zu taggen, um die Genauigkeit beizubehalten.

Wenn möglich berechnet Essbase Formeln mit zwei Durchgängen auf Blockebene gleichzeitig mit der Hauptberechnung. In einigen Fällen ist jedoch ein zusätzlicher Berechnungsdurchlauf erforderlich.

Wie Essbase Formeln mit zwei Durchgängen berechnen soll, hängt von der dicht besetzten Konfiguration der Zeit- und Kontodimensionen ab.

Beispiel für eine Zweistufigkeitsberechnung

Berücksichtigen Sie diese Berechnung, die für Profit % erforderlich ist:

Profit % = Profit % Sales

Angenommen, die Tabelle unten zeigt eine Teilmenge eines Datenblocks mit Kennzahlen und Jahr als dicht besetzte Dimensionen. Kennzahlen werden als Accounts und Jahr als Zeit getaggt. Die AGGMISSG-Konfigurationseinstellung ist deaktiviert (Standard).

Datenwerte wurden in die Eingabezellen geladen. Essbase berechnet die Zellen, in denen die Zahlen 1 bis 7 in dieser Reihenfolge angezeigt werden. Beispiel: "Gewinn % -> Jan" wird zuerst berechnet; "Gewinn % -> Qtr1" weist mehrere Konsolidierungspfade auf.

Beispiel für eine zweistufige Berechnung in Tabelle 34-5: Daten- und Berechnungsreihenfolge

Kennzahlen -> Jahr Jan Feb Mrz Qrt 1

Gewinn

75

50

120

5

Verkäufe

150

200

240

6

Gewinn %

1

2

3

4, 7

Hinweis:

Informationen dazu, wie die Reihenfolge der Zellberechnung von der Cube-Konfiguration abhängt, finden Sie unter Reihenfolge der Zellberechnung.

Essbase verwendet die folgende Berechnungsreihenfolge:

  1. Essbase berechnet die Formel Profit % Sales für Profit % -> Jan, Profit % -> Feb, Profit % -> Mar und Profit % -> Qtr1 (1, 2, 3, 4 oben).

  2. Essbase berechnet Gewinn -> Quartal 1 und Umsatz -> Quartal 1, indem die Werte für Januar, Februar und März (5, 6 oben) hinzugefügt werden.

  3. Essbase berechnet Gewinn % -> Quartal1, indem die Werte für Gewinn % -> Jan, Gewinn % -> Februar und Gewinn % -> März (7 oben) hinzugefügt werden. Diese Addition von Prozentsätzen ergibt den Wert 125%, was nicht das richtige Ergebnis ist.

    Beispiel für eine zweistufige Berechnung in Tabelle 34-6: Falsche Ergebnisse

    Kennzahlen/Jahr Jan Feb Mrz Qrt 1
    Gewinn 75 50 120 245 (5)
    Vertrieb 150 200 240 590 (6)

    Gewinn %

    50% (1)

    25% (2)

    50% (3)

    0% (4)

    125% (7)

  4. Wenn Sie Profit% in der Gliederung als Two-Pass taggen, verwendet Essbase die Formel Profit % Sales, um die Profit%-Werte neu zu berechnen und die richtigen Ergebnisse zu erzielen.

    Tabelle 34-7: Beispiel für eine zweistufige Berechnung: Ergebnisse korrigieren

    Kennzahlen/Jahr Jan Feb Mrz Qrt 1
    Gewinn 75 50 120 245 (5)
    Vertrieb 150 200 240 590 (6)

    Gewinn %

    50% (1)

    25% (2)

    50% (3)

    0% (4)

    125% (7)

    42% (8)

Informationen zu mehreren Berechnungsdurchläufen finden Sie unter Berechnungsdurchläufe.

Interaktion von Two-Pass und intelligenter Berechnung

Wenn Sie die intelligente Berechnung und die Zwei-Pass-Berechnung in einer Block Storage-Anwendung verwenden, verwenden Sie das Szenario, das der Konfiguration des Cubes entspricht, um sicherzustellen, dass Essbase die Zwei-Pass-Formeln genau berechnet.

Hinweis:

Verwenden Sie keine zweistufige Berechnung mit Hybridmodus-Cubes. Verwenden Sie nur Bestellung auflösen.

Szenario A: Two Pass Tag

In diesem Szenario platzieren Sie Formeln in der Gliederung und taggen gegebenenfalls bestimmte Formeln als Zwei-Pass-Formeln, um die beste Performance zu erzielen.

Keine zusätzliche Berechnungsdurchlauf für Zwei-Pass-Formeln

Da Essbase die Formeln mit zwei Durchgängen berechnet, während der Datenblock berechnet wird, muss Essbase keine zusätzlichen Berechnungsdurchläufe ausführen.

Alle als bereinigt markierten Datenblöcke

Nach der Berechnung werden alle Datenblöcke für die Zwecke der intelligenten Berechnung als bereinigt markiert.

Wenn Sie eine Elementformel als Zweistufigkeit in der Gliederung taggen, führt Essbase die Zweistufigkeitsberechnung durch, während jeder Datenblock berechnet wird. Wenn Sie jedoch eine Formel in einem Berechnungsskript wiederholen, muss Essbase die Datenblöcke lesen und in den Speicher schreiben, um die Formel neu zu berechnen.

Szenario B: Berechnungsskript

In diesem Szenario erstellen Sie ein Berechnungsskript, um die Formelberechnung für die beste Performance auszuführen.

Zusätzliche Berechnungsdurchlauf für Zwei-Pass-Formeln

Essbase berechnet den Cube und führt dann einen zusätzlichen Berechnungsdurchlauf durch, um die Zwei-Pass-Formeln zu berechnen. Obwohl alle Datenblöcke nach der ersten Berechnung als bereinigt markiert sind, ignoriert Essbase den Bereinigungsstatus in den Blöcken, die für die Zwei-Pass-Formel relevant sind, und berechnet diese Blöcke neu.

Datenblöcke für Zwei-Pass-Formeln, die nicht als sauber markiert sind

Nach der ersten Berechnung hat Essbase alle Datenblöcke als bereinigt markiert. In einem zweiten Berechnungsdurchlauf berechnet Essbase die erforderlichen Datenblöcke für die Zwei-Pass-Formeln neu. Da die zweite Berechnung jedoch eine Teilberechnung ist, markiert Essbase die neu berechneten Blöcke nicht als bereinigt. Wenn Sie eine Neuberechnung durchführen und Intelligente Berechnung aktiviert ist, werden diese Datenblöcke möglicherweise unnötig neu berechnet.

Wenn die Cube-Konfiguration es Essbase erlaubt, Szenario B zu verwenden, sollten Sie ein Berechnungsskript verwenden, um zweistufige Formelberechnungen durchzuführen. Wenn Sie ein Berechnungsskript verwenden, durchläuft Essbase die Datenbank weiterhin mit einer zusätzlichen Berechnung. Sie können jedoch sicherstellen, dass Essbase alle Datenblöcke nach der Berechnung als bereinigt markiert hat. Siehe Berechnungsskripte für zweistufige und intelligente Berechnung.

Zwei-Pass-Berechnungstag oder Berechnungsskriptmethode auswählen

Obwohl das Taggen eines Accounts-Mitglieds als Zweistufigkeit zu Performancevorteilen führen kann, können einige Anwendungen diese Methode nicht verwenden. Prüfen Sie diese Qualifikationen, um festzustellen, ob Sie ein Two-Pass-Tag anwenden oder ein Berechnungsskript erstellen sollten, das zweimal eine Berechnung ausführt, um die beste Performance und Genauigkeit zu erzielen:

  • Sie können ein Element als Two-Pass taggen, wenn es sich in einer als Accounts getaggten Dimension befindet. Wenn Sie eine Standardberechnung für die Datenbank durchführen, berechnet Essbase automatisch alle Formeln neu, die als Two-Pass gekennzeichnet sind, wenn sie sich in der als Accounts getaggten Dimension befinden.

  • Sie können ein Element als Two-Pass taggen, wenn es ein dynamisches Berechnungselement einer beliebigen Dimension ist.

  • Möglicherweise müssen Sie ein Berechnungsskript verwenden, um eine Zwei-Pass-Formel zu berechnen, um genaue Ergebnisse zu erhalten, selbst wenn das Zwei-Pass-Tag Performancevorteile bieten würde. Siehe Berechnungsskripte für zweistufige und intelligente Berechnung.

  • Sie müssen ein Berechnungsskript verwenden, um eine Formel zweimal zu berechnen, wenn die Datenbankkonfiguration bedeutet, dass Essbase Szenario A verwendet, und wenn die Formel Werte aus einem anderen Datenblock referenziert.

  • Sie können ein Berechnungsskript verwenden, um Zwei-Pass-Formeln zu berechnen, wenn die Datenbankkonfiguration bedeutet, dass Essbase Szenario B verwendet.

Standardberechnungen mit zwei Durchgängen

Eine Cube-Einstellung ist verfügbar, um Two-Pass für Standardberechnungen zu aktivieren. Wenn Sie eine Standardberechnung für einen Cube mit aktiviertem Zwei-Pass durchführen, versucht Essbase automatisch, Formeln zu berechnen, die in der als Konten getaggten Dimension als Zwei-Pass gekennzeichnet sind.

Hinweis:

Verwenden Sie keine zweistufige Berechnung mit Hybridmodus-Cubes. Verwenden Sie nur Bestellung auflösen.

Weitere Informationen finden Sie in diesen Themen:

Um eine Standardberechnung auszuführen, können Sie die Berechnung ausführen-Anweisung MaxL verwenden.

Um die Zwei-Pass-Berechnung zu aktivieren, können Sie die alter database MaxL-Anweisung verwenden.

Berechnungsskripte für Zwei-Pass- und Intelligente Berechnung

Beim Entwerfen von Essbase-Berechnungsskripten zur Ausführung von Zwei-Pass-Berechnungen mit Intelligent Calculation lernen Sie, wie Sie die Berechnungen mit SET UPDATECALC, SET CLEARUPDATESTATUS und CALC TWOPASS optimieren.

Hinweis:

Verwenden Sie keine zweistufige Berechnung mit Hybridmodus-Cubes. Verwenden Sie nur Bestellung auflösen.

Wenn Ihre Gliederung Zwei-Pass-Formeln verwendet, befolgen Sie diese Richtlinien, um die Berechnung so genau und schnell wie möglich zu gestalten:

  • Fügen Sie vor einem Befehl, der eine Zwei-Pass-Formel neu berechnet, den Befehl SET UPDATECALC OFF hinzu, um Intelligente Berechnung zu deaktivieren. Wenn Intelligente Berechnung aktiviert ist (Standard), berechnet Essbase nur die Datenblöcke, die nicht als bereinigt markiert sind. Wenn Sie jedoch eine Standardberechnung mit aktivierter Option Intelligente Berechnung ausführen, werden alle Datenblöcke als bereinigt markiert, sodass Essbase die Neuberechnung der Zwei-Pass-Formel nicht ausführt.

  • Essbase berechnet nicht automatisch Zwei-Pass-Formeln in Berechnungsskripten neu. Daher müssen Sie den Befehl CALC TWOPASS verwenden.

  • Wenn Sie die Standardberechnung von CALC ALL geändert haben und Intelligente Berechnung aktiviert ist, werden die Datenblöcke nach der ersten Berechnung möglicherweise nicht als bereinigt markiert. Siehe Intelligente Berechnung für Block Storage-Cubes.

Um die Performancevorteile der intelligenten Berechnung bei der ersten vollständigen Berechnung der Datenbank zu erhalten, verwenden Sie eine der Methoden, die in den folgenden Beispielen gezeigt werden. Die beste Methode hängt von den Berechnungsanforderungen und der Struktur des Cubes ab.

In den folgenden Beispielen wird davon ausgegangen, dass die Modellstruktur eine Dimension aufweist, die als Accounts getaggt ist, und dass es sich um eine dicht besetzte Dimension handelt. Sie möchten den Umsatz für jedes Produkt als Prozentsatz des Umsatzes für alle Produkte berechnen. Angenommen, diese Formel sollte die Dimension berechnen:

Sales % Sales -> Product

Wenn Essbase den Datenblock für jedes Produkt berechnet, wurde der Wert "Umsatz -> Produkt" noch nicht berechnet. Daher sind die Ergebnisse für den Umsatz jedes Produkts als Prozentsatz des Gesamtumsatzes falsch.

Intelligente Berechnung mit großem Index

Wenn der Cube-Index groß ist und Sie Intelligente Berechnung verwenden möchten, können Sie eine der folgenden Optionen für die beste Performance verwenden.

Berechnungsskriptoption

Mit diesem Modell können Sie ein Berechnungsskript erstellen, das eine vollständige Berechnung mit aktivierter Option Intelligente Berechnung ausführt:

SET UPDATECALC ON;

CALC ALL;
SET UPDATECALC OFF;
SET CLEARUPDATESTATUS AFTER;
"Share of Sales" = Sales % Sales -> Product;

Berechnungsskript und Zwei-Pass-Option

Um ein Element als Zwei-Pass-Element zu taggen und zuerst den vollständigen Cube mit einem Berechnungsskript zu berechnen, führen Sie die folgenden Schritte aus:

  1. Fügen Sie eine Formel in die Gliederung ein, und kennzeichnen Sie sie als Zweikampf.

  2. Platzieren Sie die Formel auf dem entsprechenden Element in der Dimension, die als Accounts gekennzeichnet ist (in unserem Beispiel "Share of Sales").

  3. Erstellen Sie ein Berechnungsskript, das eine vollständige Berechnung und anschließend eine zweistufige Berechnung ausführt:

    SET UPDATECALC ON;
    CALC ALL;
    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    CALC TWOPASS;

Client- und Berechnungsskriptoption

So führen Sie eine Standardberechnung von einem Client aus und verwenden dann ein Berechnungsskript, um die Formelberechnung durchzuführen:

  1. Aktivieren Sie die Option Intelligente Berechnung, wenn dieser Standardwert geändert wurde.

  2. Vollständige Berechnung durchführen

  3. Verwenden Sie ein Berechnungsskript wie in diesem Beispiel, um die intelligente Berechnung zu deaktivieren und die Formel zu berechnen:

    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    "Share of Sales" = Sales % Sales -> Product;

    Oder

    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    CALC TWOPASS;

Alle Beispieloptionen oben führen die folgenden Aufgaben aus:

  1. Aktivieren Sie die intelligente Berechnung.

  2. Berechnen Sie den vollständigen Cube, und markieren Sie die Datenblöcke als bereinigt.

  3. Deaktivieren Sie Intelligente Berechnung.

  4. Markieren Sie die neu berechneten Blöcke als sauber, obwohl es sich bei dieser Berechnung um eine Teilberechnung des Cubes handelt. Wenn Sie den Befehl SET CLEARUPDATESTATUS AFTER nicht verwenden, markiert Essbase Datenblöcke erst nach einer vollständigen Berechnung als bereinigt.

  5. Essbase durchläuft den Cube, berechnet nur die Formel für das relevante Element (in unserem Beispiel "Share of Sales") oder berechnet alle Formeln, die in der Gliederung als Zweistufigkeit gekennzeichnet sind.

Beispiel: Intelligente Berechnung mit einem kleinen Index

So verwenden Sie Intelligente Berechnung, wenn der Cube-Index klein ist:

  1. Erstellen Sie ein Berechnungsskript, um den Cube zu berechnen. Bitten Sie Essbase jedoch, die berechneten Datenblöcke nicht als bereinigt zu markieren.

  2. Markieren Sie alle Datenblöcke als bereinigt, und berechnen Sie die Datenblöcke nicht neu.

    SET CLEARUPDATESTATUS OFF;
    CALC ALL;
    CALC TWOPASS;
    SET CLEARUPDATESTATUS ONLY;
    CALC ALL;
    1. SET CLEARUPDATESTATUS OFF weist Essbase an, die berechneten Datenblöcke nicht als bereinigt zu markieren.

    2. Die erste CALC ALL bewirkt, dass Essbase den Cube durchläuft und alle Dirty-Datenblöcke berechnet. Essbase kennzeichnet die berechneten Blöcke nicht als bereinigt.

      Essbase berechnet die Formeln nicht automatisch neu, die als Two-Pass gekennzeichnet sind.

    3. CALC TWOPASS bewirkt, dass Essbase den Cube durchläuft und die Formeln mit zwei Durchgängen in der Account-Dimension neu berechnet. Essbase berechnet die Formeln neu, weil die erforderlichen Datenblöcke von der vorherigen CALC ALL nicht als bereinigt markiert wurden. Essbase kennzeichnet die neu berechneten Datenblöcke nicht als bereinigt.

    4. SET CLEARUPDATESTATUS ONLY weist Essbase an, die Datenblöcke als bereinigt zu markieren, die Datenblöcke jedoch nicht zu berechnen (dieser Befehl deaktiviert die Berechnung).

    5. Die letzte CALC ALL bewirkt, dass Essbase den Cube durchläuft und alle Datenblöcke als bereinigt markiert. Essbase berechnet die Datenblöcke nicht.

Beispiel: Intelligente Berechnung für eine zweistufige Formel deaktiviert

Um die Option Intelligente Berechnung für eine Formel mit zwei Durchgängen zu deaktivieren, erstellen Sie ein Berechnungsskript, das die folgenden Aufgaben ausführt:

  • Deaktiviert die intelligente Berechnung.

  • Führt eine vollständige Berechnung aus.

  • Wiederholt die folgende Zwei-Pass-Formel:

    SET UPDATECALC OFF;
    CALC ALL;
    "Share of Sales" = Sales % Sales -> Product;