64-Bit-Größenlimit für Aggregate Storage Outline

Eine Essbase Aggregate Storage-(ASO-)Cube-Modellstruktur darf 64 Bit pro Dimension nicht überschreiten.

Die Anzahl der Bits, die von einer Dimension benötigt werden, ist die maximale Anzahl von Bits, die von einem untergeordneten Element der Ebene 0 verwendet werden, einschließlich der untergeordneten Elemente der Ebene 0 in alternativen Hierarchien und zugehörigen Attributdimensionen. Für die Elementnummerierung werden Attributdimensionen als alternative Hierarchien ihrer Basisdimensionen behandelt.

Im Allgemeinen kann die Formel zur Bestimmung der Anzahl der Bits, die für ein Element in einer Dimension erforderlich sind, wie folgt ausgedrückt werden:

#_bits_member’s_parent + log(x)

wobei x die Anzahl der untergeordneten Elemente des übergeordneten Elements ist.

Beispiel: Wenn das übergeordnete Element des Elements Element A ist, das 5 Bit erfordert, und A 10 untergeordnete Elemente hat, ist die Anzahl der für jedes untergeordnete Element erforderlichen Bits wie folgt:

5 +log(10) = 9 bits

Das oberste Element einer Dimension oder Hierarchie verwendet in der Regel 0 Bit. Wenn jedoch eine oder mehrere Top-Generationen aus Nur-Label-Elementen bestehen, erhalten die Nur-Label-Elemente keine Elementnummern (da sie nicht als gespeicherte Elemente betrachtet werden). Wenn also x Elemente in der ersten Nicht-Label-Only-Generierung vorhanden sind, verwenden diese Elemente Log-(x-)Bits. Die restlichen Kinder darunter sind normal nummeriert.

Wenn eine Dimension oder Hierarchie dynamisch ist, erhalten nur die Elemente der Ebene 0, die gespeichert oder gemeinsam verwendet werden, Elementnummern. Die Anzahl der für diese Elemente erforderlichen Bits ist "log" (x), wobei x die Anzahl der Elemente der 0. Ebene ist, die gespeichert oder gemeinsam verwendet werden (d.h. die Anzahl der Elemente der 0. Ebene, die keine Formelelemente sind).

Wenn jedoch alternative Hierarchien Elemente der Ebene 0 (nicht gemeinsam) gespeichert haben, verwendet jedes Element jeder Hierarchie in der Dimension (einschließlich zugehöriger Attributdimensionen) ein zusätzliches Log-(x-)Bit, wobei x die Gesamtanzahl der Hierarchien und zugehörigen Attributdimensionen für diese Basisdimension darstellt.

Im folgenden Beispiel wird die Dimension Products in der Datenbank ASOsamp.Basic verwendet:


Diese Abbildung zeigt die Dimension "Produkte", wie im Text nach der Abbildung beschrieben.

Die Dimension "Products" weist zwei Hierarchien auf: "All Merchandise" und "High End Merchandise", eine alternative Hierarchie. High End Merchandise hat ein gespeichertes Element der Ebene 0: Stored Member. Der Dimension "Produkte" sind keine Attribute-Dimensionen zugeordnet.

Mitglieder Alle Merchandise und High End Merchandise verwenden log(2) = 1 Bit.

Hinweis:

Wenn für die alternative Hierarchie "High-End-Ware" keine Elemente der Ebene 0 gespeichert waren, verwenden die obersten Elemente jeder Hierarchie (und zugehörigen Attributdimensionen) jeweils 0 Bit.

Die Berechnung der Anzahl der Bits, die für jedes untergeordnete Element der Ebene 0 erforderlich sind:

All Merchandise = 1 bit
   Personal Electronics, Home Entertainment, Other = 1 + log(3) = 3 bits
      Digital Cameras/Camcorders, Handhelds/PDAs, Portable Audio = 3 + log(3) = 5
         Children of Digital Cameras/Camcorders = 5 + log(3) = 7
         Children of Handhelds/PDAs = 5 + log(3) = 7
         Children of Portable Audio = 5 + log(2) = 6
      Televisions, Home Audio/Video = 3 + log(2) = 4
         Children of Televisions = 4 + log(5) = 7

         Children of Home Audio/Video = 4 + log(4) = 6
      Computers and Peripherals = 3 + log(1) = 3 **
      Systems, Displays, CD/DVD drives = 3 + log(3) = 5
         Children of Systems = 5 + log(2) = 6
   High End Merchandise = 1 bit
      Flat Panel, HDTV, Stored Member = 1 + log(3) = 3 bits

Member-Computer und Peripheriegeräte haben die gleiche Anzahl von Bits (3) wie der übergeordnete Andere.

Die maximalen Bits, die von Kindern der Stufe 0 in der Dimension "Produkte" verwendet werden, sind 7 (Kinder von Digitalkameras und Kinder von Fernsehern). Daher verwendet Products 7 Bit, was weniger als die Dimensionsgrößengrenze von 64 Bit ist.

Wenn die Dimensionsgröße 64 Bit überschreitet:

  • Beim Speichern der Modellstruktur generiert Essbase den folgenden Fehler:

    Hierarchy [DimensionName] is too complex. It exceeds the maximum member number width of 64 bits. See application log for details.
  • Essbase protokolliert Meldungen ähnlich wie die folgenden Meldungen im Anwendungslog:

    Member number for member [level0member] requires [65] bits to encode
    Member [level0member] contributes [5] bits to member number
    Member [level1parent] contributes [20] bits to member number
    Member [level2parent] contributes [20] bits to member number
    Member [level3parent] contributes [20] bits to member number

Um den Fehler zu beheben, verwenden Sie eine der folgenden Empfehlungen:

  • Wenn möglich, löschen Sie einige gleichgeordnete Elemente eines der in den Nachrichten referenzierten Elemente. Die Reduzierung der Anzahl der Geschwister um eine Kraft von zwei spart ein Bit. Nehmen wir zum Beispiel an, dass level0member, das 5 Bit zur Mitgliedsnummer beiträgt, 18 Geschwister hat, einschließlich sich selbst. Wenn Sie die Anzahl der gleichgeordneten Elemente auf 16 oder weniger reduzieren, wird ein Bit gespeichert, da log(16) = 4 ist. Wenn Sie die Anzahl der Geschwister auf 8 oder weniger reduzieren, werden zwei Bit eingespart.

  • Klassifizieren Sie einige gleichgeordnete Elemente neu, die in den Nachrichten referenziert werden. Beispiel: Verschieben Sie die Hälfte der 18 gleichgeordneten Elemente der Ebene 0 in ein anderes übergeordnetes Element, das nicht so viele untergeordnete Elemente hat. Alternativ können Sie ein neues übergeordnetes Element als gleichgeordnetes Element von level1parent erstellen und die Hälfte der untergeordneten Elemente der Ebene 1parent unter das neue Element verschieben. Dieser Ansatz spart ein bisschen.

  • Kombinieren Sie einige Zwischenstufen. Verschieben Sie zum Beispiel level0member und alle seine Geschwister, um untergeordnete Elemente von level2parent zu sein, und entfernen Sie dann level1parent. Dieser Ansatz ist mehr involviert, kann aber viele Bits sparen.