#MISSING Werte
Wenn für eine Kombination von Block Storage-Dimensionselementen kein Datenwert vorhanden ist, gibt Essbase der Kombination den Wert #MISSING. #MISSING-Werte unterscheiden sich von Nullwerten (0). Standardmäßig werden #MISSING-Daten nicht konsolidiert, es sei denn, Sie aktivieren eine Einstellung. Sie können #MISSING-Blöcke entfernen, um die Leistung zu verbessern.
Konsolidierung von #MISSING
Im Folgenden wird gezeigt, wie Essbase #MISSING-Werte berechnet. In dieser Tabelle steht X für eine beliebige Zahl:
Tabelle 34-8: Wie Essbase #MISSING-Werte behandelt
| Berechnung/Vorgang | Ergebnis |
|---|---|
|
X + #FEHLEND |
X |
|
X – #FEHLT #FEHLEN – X |
X -X |
|
X * #FEHLT |
#FEHLT |
|
X/#FEHLEND #FEHLEND / X X/0 |
#FEHLT #FEHLT #FEHLT |
|
X % FEHLENDE ANZAHL % X FEHLT X % 0 |
#FEHLT #FEHLT #FEHLT |
|
X == #FEHLT |
Falsch, es sei denn, X ist #MISSING |
|
X != #FEHLT X < > #FEHLT |
WAHR, es sei denn, X ist #MISSING WAHR, es sei denn, X ist #MISSING |
|
X <= #FEHLEN |
(X <= 0) |
|
X >= #FEHLT |
(X >= 0) oder (X == #MISSING) |
|
X > #FEHLT |
(X > 0) |
|
X < #FEHLEND |
(X < 0) |
|
X UND #MISSING: Y UND #MISSING, wobei Y einen Wert ungleich Null darstellt 0 UND #MISSING #FEHLEN UND #FEHLEN |
#FEHLT 0 #FEHLT |
|
X ODER #FEHLEND: Y ODER #MISSING, wobei Y einen Wert ungleich Null darstellt 0 ODER #MISSING #FEHLEN ODER #FEHLEN |
J #FEHLT #FEHLT |
|
IF (FEHLENDE) |
IF (0) |
|
f (FEHLENDE) |
#MISSING für jede Essbase-Funktion einer Variablen |
|
f (X) |
#MISSING für X, die nicht in der Domain von f enthalten sind, und für alle EssbaseEssbase-Funktionen mehrerer Variablen (außer wenn speziell darauf hingewiesen) |
Standardmäßig fasst Essbase keine #MISSING-Werte zusammen. Wenn Sie jedoch immer Daten auf Ebene 0 und niemals auf übergeordneten Ebenen laden, sollten Sie die Einstellung für die Konsolidierung von #MISSING-Werten aktivieren. Diese Einstellung bietet eine Verbesserung der Berechnungsleistung von 1% bis 30%. Die Performanceverbesserung variiert je nach Cube-Größe und -Konfiguration.
Achtung:
Der Standardwert, der keine #MISSING-Werte konsolidiert, muss gültig sein, wenn Sie Daten auf übergeordneten und nicht auf untergeordneten Ebenen laden, sofern untergeordnete Elementkombinationen #MISSING-Werte aufweisen. Wenn alle untergeordneten Elementkombinationen andere Werte aufweisen, einschließlich Null (0), summiert Essbase die untergeordneten Werte und überschreibt die übergeordneten Werte korrekt, sodass Sie den Standardwert sicher ändern können.
Verwenden Sie eine der folgenden Methoden, um #MISSING-Werte zu konsolidieren. Der Grad der Performanceverbesserung hängt vom Verhältnis zwischen Blöcken der oberen Ebene und Eingabeblöcken in der Datenbank ab.
Um die Konsolidierung von #MISSING-Werten zu ändern, können Sie eine der folgenden Methoden verwenden:
-
Wählen Sie die Option "Cube für fehlende Werte aggregieren" in der Essbase-Weboberfläche aus.
-
Verwenden Sie in einem Berechnungsskript den Berechnungsbefehl SET AGGMISSG.
-
Verwenden Sie die alter database enable aggreg_missing MaxL-Anweisung.
Wenn Sie die Konsolidierung von #MISSING-Werten in den Cube-Eigenschaften aktivieren, ändert sich die Reihenfolge der Zellenberechnung in einem Datenblock.
Wenn die Einstellung für die Konsolidierung von #MISSING-Werten deaktiviert ist, ist der Performance-Overhead in den folgenden Situationen besonders hoch:
-
Wenn das Verhältnis berechneter Datenblöcke zu Eingabedatenblöcken niedrig ist
-
Wenn viele Datenwerte auf übergeordneten Ebenen in dünn besetzten Dimensionen geladen werden
In diesen Fällen beträgt der Performance-Overhead 10–30%. Wenn die Berechnungsperformance entscheidend ist, können Sie die Datenbankkonfiguration oder das Laden von Daten überdenken.
#MISSING-Blöcke werden entfernt
Mit dem Befehl CLEARDATA können Sie den Wert der Zellen in einem Block in #MISSING ändern. Die Datenblöcke werden nicht entfernt. Diese zusätzlichen Blöcke können den Abruf und die Rechenleistung verlangsamen.
Wenn die #MISSING-Blöcke die Performance verlangsamen, führen Sie eine der folgenden Aktionen aus:
-
Mit dem Befehl CLEARBLOCK können Sie die Datenblöcke entfernen.
-
Exportieren Sie die Daten und importieren Sie sie erneut.
Das Entfernen leerer Blöcke verbessert die Performance, wenn bereits Datenwerte geladen wurden. Die Zeit für den Dataload-Prozess erhöht sich jedoch, wenn neue Werte erfordern, dass Blöcke erstellt werden.