Auswirkung der dynamischen Berechnung auf Abrufzeit reduzieren

Die Erhöhung der Abrufzeit, wenn Sie ein Element einer dicht besetzten Dimension dynamisch berechnen, ist nur relevant, wenn das Element eine komplexe Formel enthält. Die Erhöhung der Abrufzeit kann von Bedeutung sein, wenn Sie Elemente von Sparse-Dimensionen als Dynamische Berechnung kennzeichnen.

Sie können die Auswirkungen von Dynamic Calc-Elementen auf eine Essbase-Datenbank analysieren und verwalten, indem Sie auf den Abruffaktor, die Abrufpuffergröße und die Rechnercaches achten.

Hinweis:

Eine Liste der Funktionen, die sich am stärksten auf den Abfrageabruf auswirken, finden Sie unter Elementsetfunktionen und -performance.

Abruffaktor anzeigen

Um eine Erhöhung der Abrufzeit zu schätzen, berechnet Essbase beim Speichern der Modellstruktur einen Abruffaktor für eine Datenbankmodellstruktur. Essbase berechnet diesen Abruffaktor basierend auf dem dynamisch berechneten Datenblock, der für Essbase am teuersten zu berechnen ist. Der Abruffaktor berücksichtigt nur Aggregationen. Die Auswirkungen von Formeln auf den Abruf werden nicht berücksichtigt.

Der Abruffaktor ist die Anzahl der Datenblöcke, die Essbase von der Festplatte oder von der Datenbank abrufen muss, um den teuersten Block zu berechnen. Wenn die Datenbank dynamische Berechnungselemente nur in dicht besetzten Dimensionen enthält (keine dynamischen Berechnungselemente in dünn besetzten Dimensionen), ist der Abruffaktor 1.

Eine Modellstruktur mit einem hohen Abruffaktor (z.B. größer als 2000) kann zu langen Verzögerungen beim Abrufen von Daten durch Benutzer führen. Die tatsächliche Auswirkung auf die Abrufzeit hängt jedoch auch davon ab, wie viele dynamisch berechnete Datenwerte ein Benutzer abruft. Der Abruffaktor ist nur ein Indikator. In einigen Anwendungen kann die Verwendung von Dynamic Calc-Elementen die Abrufzeit reduzieren, da die Datenbankgröße und die Indexgröße reduziert werden.

Essbase zeigt den Wert des Abruffaktors im Anwendungslog an.

Eine Meldung wie in diesem Beispiel gibt einen Abruffaktor an:


Essbase needs to retrieve [1] Essbase kernel blocks in order
to calculate the top dynamically-calculated block.

Diese Meldung weist Sie darauf hin, dass Essbase einen Block abrufen muss, um den teuersten dynamisch berechneten Datenblock zu berechnen.

Abrufpuffergröße erhöhen

Wenn Benutzer von Smart View, MDX oder Report Writer abfragen, verwendet Essbase den Abrufpuffer, um die Abfrage zu optimieren. Die Erhöhung der Abrufpuffergröße kann die Abfrageperformance verbessern, da Essbase größere Datenabschnitte gleichzeitig verarbeiten kann.

Standardmäßig beträgt die Abrufpuffergröße 20 KB. Sie können jedoch die Abrufzeit verkürzen, wenn Sie die Abrufpuffergröße größer als 20 KB festlegen.

Um die Abrufpuffergröße zu erhöhen, können Sie die Datenbankanweisung MaxL alter verwenden. Beispiel:

alter database Sample.Basic set retrieve_buffer_size 20kb;

Sie können die Puffergröße auch in den Datenbankanpassungseinstellungen mit der Essbase-Weboberfläche ändern.

Dynamische Rechnercaches verwenden

Wenn Essbase ein Dynamic Calc-Element in einer dicht besetzten Dimension berechnet (z.B. für eine Abfrage), schreibt es standardmäßig alle für die Berechnung benötigten Blöcke in einen Bereich im Speicher, den sogenannten dynamischen Rechnercache. Wenn Essbase diese Blöcke in den dynamischen Rechnercache schreibt, werden sie so erweitert, dass alle dynamischen Berechnungselemente in den dicht besetzten Dimensionen enthalten sind.

Wenn eine Abfrage ein zweistufiges Berechnungselement in einer dicht besetzten Dimension enthält, benötigt die Abfrage einen dynamischen Rechnercache für jeden abgerufenen Block.

Mit dem dynamischen Essbase-Rechnercache können Sie die Speicherauslastung für dynamische Berechnungen zentral steuern. Die Verwaltung von Datenblöcken im dynamischen Rechnercache verringert auch den Gesamtbedarf an Speicherplatz und kann die Performance verbessern, indem die Anzahl der Aufrufe an das Betriebssystem für die Speicherzuweisung reduziert wird.

Hinweis:

Der dynamische Rechnercache und der Rechnercache verwenden verschiedene Ansätze zur Optimierung der Berechnungsperformance.

Siehe auch: Größe der dynamischen Rechnercaches festlegen und Größe des Rechnercaches festlegen.

Verwendung des dynamischen Rechnerscaches prüfen

Essbase schreibt für jeden Datenabruf zwei Nachrichten in das Anwendungslog. Im folgenden Beispiel wird in der ersten Meldung die Gesamtzeit beschrieben, die für den Abruf erforderlich ist:


Regular Extractor Elapsed Time : [0.531] seconds
Regular Extractor Big Blocks Allocs -- Dyn.Calc.Cache : [30] non-Dyn.Calc.Cache : [0]

Wenn ein dynamischer Rechnercache verwendet wird, zeigt eine zweite Meldung die Anzahl der Blöcke an, die im Datenrechnercache berechnet wurden (Dyn.Calc.Cache: [n]) und die Anzahl der Blöcke, die im Speicher außerhalb des dynamischen Rechnercache berechnet wurden (Nicht-Dyn.Calc.Cache: [n]).

Um zu bestimmen, ob der dynamische Rechnercache effektiv verwendet wird, prüfen Sie beide Meldungen und berücksichtigen Sie Ihre Konfigurationseinstellungen. Beispiel: Wenn die Meldung angibt, dass Blöcke außerhalb und in einem dynamischen Rechnercache berechnet wurden, können Sie die Einstellung DYNCALCCACHEMAXSIZE erhöhen.

Wenn die angegebene maximale Größe für alle dynamischen Rechnercaches auf dem Server verfügbar ist und die Verwendung von Speicher außerhalb des Rechnercaches zum Abschließen dynamisch berechneter Abrufe zu inakzeptablen Verzögerungen führt (z.B. wegen Swapping- oder Paging-Aktivität), setzen Sie DYNCALCCACHEWAITFORBLK auf TRUE.

Sie können die Abfragedatenbank-MaxL-Anweisung mit der Grammatik Performancestatistiken verwenden, um eine Zusammenfassung der dynamischen Rechnercacheaktivität anzuzeigen.