Mit den Utilitys unter "Cube optimieren" ("Baseline", "Berechnungscache", "Lösungsreihenfolge" und "Datenverteilung") können Sie Ihre Cubes optimieren, um bessere Performance zu erhalten.
Utility | Zurückgegebene Daten |
---|---|
Baseline | Cube-Performancemetriken |
Lösungsreihenfolge | Lösungsreihenfolge der Elemente im Cube |
Berechnungscache | Daten, mit denen Sie den besten Berechnungscachewert für den Cube auswählen können |
Datenverteilung | Daten, anhand derer Sie bestimmen können, welche Dimensionen dicht besetzt und welche dünn besetzt sein sollten |
Die vom Baselineutility verfolgten Metriken zeigen die Systemperformance an. Mit diesen Metriken können Sie die Baselineperformance bestimmen. Anschließend können Sie den Nutzen der vorgenommenen Optimierungen messen.
Bevor Sie dieses Utility verwenden, müssen Sie zunächst eine Anwendungsarbeitsmappe, einschließlich Modellstruktur, Konfigurationseinstellungen, Berechnungsskripten und Abfragen für den Cube, erstellen.
Das Utility erstellt bei seiner Ausführung den Cube, lädt die ausgewählten Datendateien und führt die ausgewählten Berechnungsskripte sowie die Abfragen in der Anwendungsarbeitsmappe aus. Es ist wichtig, eine repräsentative Auswahl von Abfragen der Benutzer zu verwenden.
Das Baselineutility erstellt ein Dashboard der Anwendungs- und Betriebsprozesse, mit dem Sie den Cube entwerfen und optimieren können. Während Sie Änderungen implementieren und den Cube erneut erstellen, können Sie anhand der Baseline Iterationen von Cube-Änderungen vergleichen. Auf der Registerkarte Essbase.Stats.Baseline der Anwendungsarbeitsmappe hängt das Baselineutility neue Tabellen mit den aktuellen Daten für jede Iteration an.
Baselineutility unter "Cube optimieren" in einem Hybridmodus-Cube vorbereiten
Schließen Sie diese Aufgaben ab, bevor Sie das Baselineutility ausführen:
Zum Erstellen einer Anwendungsarbeitsmappe können Sie eine Beispiel-Anwendungsarbeitsmappe herunterladen und diese dann Ihren Anforderungen anpassen. Siehe Galerievorlagen.
Wenn die Abfrageblätter Metadaten von einem anderen Server enthalten, zeigt Cube Designer eine Warnung an und unterbricht die Verarbeitung, bis Sie darauf reagieren.
Einstellung | Wert |
---|---|
ASODYNAMICAGGINBSO | FULL |
HYBRIDBSOINCALCSCRIPT | NONE |
INDEXCACHESIZE | 100M |
DATACACHESIZE | 100M |
ASODEFAULTCACHESIZE | 100 |
MAXFORMULACACHESIZE | 102400 |
INPLACEDATAWRITEMARGINPERCENT | 20 |
CALCCACHEDEFAULT | 200000 |
LONGQUERYTIMETHRESHOLD | -1 |
Baselineutility unter "Cube optimieren" in einem Hybridmodus-Cube ausführen
Das Baselineutility identifiziert Dense- und Sparse-Dimensionen, Datengröße (PAG- und IND-Dateigrößen), Blockgröße sowie die Größe von Daten, Index und Berechnungscache. Darüber hinaus erhalten Sie damit Metriken für den Dataload, die Berechnung und die Abfrage.
So führen Sie das Baselineutility aus:
Berechnungsskripte werden in der Reihenfolge ausgeführt, in der sie in der Anwendungsarbeitsmappe erscheinen. Bei "Cube optimieren" wird die Eigenschaft Berechnung ausführen in den Berechnungsblättern ignoriert.
"Cube optimieren" unterstützt nur Berechnungsskripte, die von "Jobs" ausgeführt werden können. Sie können keine Berechnungsskripte ausführen, die vom aktuellen Smart View-Rasterkontext abhängig sind (z.B. Berechnungen, die mit der @GRIDTUPLES-Funktion definiert wurden, oder solche, die mit <svLaunch>-Tags definierte Laufzeitsubstitutionsvariablen verwenden).
Wenn die Anwendungsarbeitsmappe kein Datenblatt enthält, werden Sie aufgefordert, Daten- und Regeldateien im Katalog auszuwählen. Sie sollten die Daten- und Regeldateien in einem freigegebenen Verzeichnis im Katalog speichern, damit die Dateien nicht verloren gehen, wenn Sie den Cube erneut erstellen.
Die Erstellung des Cubes nimmt etwas Zeit in Anspruch.
Essbase generiert das Arbeitsblatt Essbase.Stats.Baseline und fügt es der Arbeitsmappe hinzu.
Wenn Sie eine dynamische Dimension in eine gespeicherte Dimension ändern, wird diese Menge reduziert.
Prüfen Sie die Lösungsreihenfolgen von berechneten Elementen, und nehmen Sie Änderungen vor, um die Anzahl der Formelausführungen zu reduzieren und die Performance zu verbessern. Sie können auch ein berechnetes Element mit Formeln speichern, um die Anzahl der Formelausführungen zu reduzieren und die Performance zu verbessern.
Mit dem Utility für die Lösungsreihenfolge erhalten Sie eine visuelle Darstellung der in der Anwendung verwendeten Lösungsreihenfolge. Damit können Sie Probleme mit der Abfrageperformance im Zusammenhang mit Formeln diagnostizieren.
So führen Sie das Lösungsreihenfolgenutility unter "Cube optimieren" aus:
Passen Sie die Lösungsreihenfolge anhand der Informationen im Arbeitsblatt Essbase.Stats.SolveOrder an, um die Abfrageperformance zu optimieren. Siehe Cube für Hybridmodus optimieren und Lösungsreihenfolge im Hybridmodus.
Das Utility "Berechnungscache" empfiehlt die optimale Berechnungscacheeinstellung für den Cube.
Mit der richtigen Berechnungscacheeinstellung können Sie die Performance beim Berechnen ganzer Sparse-Dimensionen in einem Berechnungsskript wesentlich verbessern. Durch Berechnen einer ganzen Sparse-Dimension lässt sich die Anzahl der für eine Abfrage erforderlichen Blöcke reduzieren.
Der Standardwert für den Berechnungscache beträgt 200.000 Byte. Der Höchstwert beträgt 20.000.000 Byte.
Der Berechnungscache sollte gerade groß genug für die Sparse-Dimensionen sein, die im Berechnungsskript berechnet werden. Wenn Sie den Berechnungscache größer als erforderlich machen, wird die Performance dadurch verschlechtert.
Die beste Wahl ist in der Regel die größte Dimension.
Der Berechnungscachealgorithmus wählt die Sparse-Dimensionen aus, die im Cache abgelegt werden, beginnend mit der ersten Sparse-Dimension.
Der Cube muss erstellt sein, damit das Utility "Berechnungscache" funktioniert.
Das Utility zeigt die richtige Cacheeinstellung neben jeder Dimension bis zu 20 MB an. Bei mehr als 20 MB wird "N/V" angezeigt. Einstellungen über einigen MB sind im Allgemeinen nicht erforderlich.
Fügen Sie diesen Wert dem Abschnitt "Anwendungseinstellungen" im Arbeitsblatt Cube.Settings hinzu. Alternativ dazu können Sie den Wert in den Anwendungskonfigurationseinstellungen in der Essbase-Weboberfläche festlegen. Dabei sollten Sie den Wert am besten aufrunden.
Mit dem Datenverteilungsutility können Sie die Daten in einer Anwendung besser verstehen und so wichtige Entscheidungen zur Optimierung des Cubes treffen.
Dense-Dimensionen definieren die Blöcke in einer Block Storage-Anwendung. Im Idealfall sollte ein Block Dimensionen mit den meisten Daten enthalten und das vorherrschende Abfragelayout für diese Anwendung darstellen. Bei Finanzberichtsanwendungen bedeutet das in der Regel, dass die Time- und die Account-Dimension dicht besetzt sein sollten.
Einer der Faktoren, die sich auf die Abfrageperformance auswirken, ist die Anzahl der von der Abfrage angeforderten Blöcke. Wenn zu viele Blöcke angefordert werden, verringert sich die Abfrageperformance. Um die Anzahl der angeforderten Blöcke zu reduzieren, berechnen Sie Elemente der oberen Ebene von mindestens einer Sparse-Dimension im Voraus. Setzen Sie zunächst das Dimensionsspeicherattribut der oberen Elemente auf ein gespeichertes Attribut (Speichern oder Nie gemeinsam verwenden). Führen Sie dann ein Berechnungsskript aus, das diese Dimension entweder mit CALC DIM oder mit AGG aggregiert.
Verwenden Sie zur Optimierung des Berechnungsskripts, mit dem die gespeicherten Sparse-Dimensionen aggregiert werden, den FIXPARALLEL-Befehl. Es ist wichtig, die richtigen Task-Dimensionen auszuwählen. Eine Task-Dimension bestimmt, wie die Berechnung in Threads aufgeteilt und parallel ausgeführt wird. Mindestens eine Sparse-Dimension muss die meisten Daten enthalten, um leere Aufgaben zu reduzieren. Im Idealfall sind diese Daten gleichmäßig verteilt.
Dieser Prozess kann viel Zeit in Anspruch nehmen, insbesondere bei größeren Modellen.