Show TOC

Besonderheiten von InfoCubes in InfoSetsLocate this document in the navigation structure

Verwendung

InfoCubes werden in InfoSets logisch so wie DataStore-Objekte behandelt. Das schließt auch die Zeitabhängigkeiten mit ein.

Achtung

InfoCubes, die Bestandskennzahlen enthalten, können nicht in InfoSets verwendet werden.

Funktionsumfang

Status der Requests

In einem InfoCube können Daten mit unterschiedlichem Requeststatus gelesen werden. Diese Einstellung können Sie über das Kontextmenü an den Zeilen der Tabellendarstellung des InfoCubes vornehmen.

Bei der Verwendung von InfoCubes in InfoSets kann in der InfoCube-Administration eingestellt werden, bis zu welchem Request die Daten in Aggregate hochgerollt werden sollen (rollup) und bis zu welchem Request die Daten qualitativ korrekt sind (qualok). Standard für qualok sind alle grünen Requests, vor denen sich kein nicht-grüner Request befindet.

Im Beispiel sind die Requests 1-23 in die Aggregate hochgerollt, und die Requests 1-27 sind qualitativ korrekt.

Im Rahmen des InfoCubes im InfoSet werden folgende möglichen Alternativen für die Aktualität der Daten eines InfoCubes angeboten:

  • Hochgerollte Daten (rollup):

    Nur die hochgerollten Requests werden gelesen. Nur diese Einstellung erlaubt potentiell die Verwendung von Aggregaten unter den im folgenden Abschnitt beschriebenen Bedingungen.

  • Bis zum aktuellen Stand (qualok):

    In diesem Fall können keine Aggregate verwendet werden, da auch nicht hochgerollte Daten gelesen werden müssen.

  • Alle grünen Requests (all):

    Alle korrekt geladenen Requests werden gelesen. Es können keine Aggregate verwendet werden.

  • Alle Requests (dirty):

    Alle Requests einschließlich abgebrochener und nicht korrekt geladener Requests sowie Requests, die im Moment geladen werden, werden gelesen. Es können keine Aggregate verwendet werden.

    Aus Performancegründen ist für große InfoCubes nur die Option Hochgerollte Daten (rollup) sinnvoll. Dies ist auch die Standard-Einstellung für jeden InfoCube im InfoSet.

Verwendung von Aggregaten

Bei einer Query auf einem InfoSet mit InfoCube wird zur Laufzeit entschieden, ob für den InfoCube ein Aggregat verwendet werden kann. Dies ist dann der Fall, wenn alle benötigten InfoObjects des InfoCubes in einem Aggregat vorliegen. Folgende InfoObjects werden benötigt:

  • in der Query selektierte Kennzahlen des InfoCubes

  • in der Query selektierte Merkmale des InfoCubes

  • für den Join mit anderen InfoProvidern des InfoSets benötigte Merkmale

Vorraussetzung für die Verwendung eines Aggregats ist weiterhin, dass alle Daten, die von einem InfoCube benötigt werden, mit einem logischen Zugriff gelesen werden können. Es ist innerhalb von InfoSets mit InfoCubes nicht möglich, für einen InfoCube einen Teil der Daten aus einem Aggregat und einen Teil der Daten aus einem anderen Aggregat oder dem InfoCube selbst zu lesen.

Hinweis

Innerhalb eines InfoSets ist es nicht möglich, auf BW Accelerator Indizes zuzugreifen.

Interpretation des Satzzählers bei InfoSets mit InfoCube

Der Satzzähler eines einzelnen InfoCubes gibt die Anzahl physisch vorhandener Sätze wieder, die von der Selektion betroffen sind. Der Satzzähler hängt vom aktuellen Verdichtungsstatus des InfoCubes ab. Wird ein Aggregat gewählt, so gibt der Satzzähler die selektierte Anzahl Sätze des Aggregats wieder, nicht die Anzahl Sätze des InfoCubes, aus denen die selektierten Sätze des Aggregats aufgebaut worden sind.

Bei InfoSets mit mehreren beteiligten InfoProvidern vervielfachen sich generell die Kennzahlwerte, falls nicht alle am Join beteiligten Merkmale im Aufriss der Query angegeben sind. Dies trifft auch für den Satzzähler zu.

Einschränkungen

  • Aus Performancegründen kann ein InfoCube nicht als rechter Operand eines Left Outer Joins definiert werden.

  • SAP unterstützt generell nicht mehr als zwei InfoCubes in einem InfoSet. Wenn Sie mehr als zwei InfoCubes in ein InfoSet aufnehmen, wird deshalb eine Warnung ausgegeben. Die Unterstützung wurde aus mehreren Gründen limitiert:

    • Generell können vom Application Server keine SQL Statements mit mehr als 64kb (in Unicode-Systemen 32k Zeichen) erzeugt werden. Je mehr InfoCubes in einem InfoSet verwendet werden, desto schneller wird diese Limitierung erreicht.

    • Im Gegensatz zum Sternschema, bei dem die möglichen sinnvollen Zugriffspläne der Datenbank durch die Anordnung der Tabellen bereits limitiert sind, existieren beim Join mehrerer InfoCubes und beim Join von InfoCubes mit DataStore-Objekten mehrere Faktentabellen oder DataStore-Objekt-Tabellen. Damit steht nicht mehr nur eine große Tabelle im Mittelpunkt des Schemas, und die Wahl eines guten Zugriffsplans ist ungleich schwieriger. Die durchschnittliche Antwortzeit steigt deshalb exponentiell mit der Anzahl beteiligter InfoCubes.

    • Falls nicht alle in Join-Bedingungen beteiligten Merkmale im Aufriss einer Query stehen, vervielfachen sich die Kennzahlwerte von InfoCubes und DataStore-Objekten beim Join mit InfoProvidern (wie auch im Hinweis 592785 Auf SAP-Site veröffentlichte Informationen beschrieben). Die Interpretation von Ergebnissen von Joins mit nicht-eindeutigen InfoProvidern wird deshalb umso schwieriger, je mehr InfoProvider beteiligt sind.

Designempfehlungen

  • Um Probleme mit sich vervielfachenden Kennzahlwerten zu umgehen (siehe Hinweis 592785) empfehlen wir, dass nur für ein DataStore-Objekt oder InfoCube des InfoSets die Kennzahlen im InfoSet für die Query bereitgestellt werden (Kennzeichen in der ersten Spalte der InfoSet-Pflege).

  • Wir empfehlen, nur ein Objekt des InfoSets (DataStore-Objekt, InfoCube, oder Stammdatentabelle) mit mehrdeutigen Merkmalswerten zu verwenden. Das bedeutet, dass beim Join eines DataStore-Objekt mit einem InfoCube, sofern der InfoCube die sichtbaren Kennzahlen besitzt, alle Schlüsselmerkmale des DataStore-Objekt in der Join-Bedingung zum InfoCube verwendet werden sollen, ebenso soll für den Join einer Stammdatentabelle mit Klammerung mit einem InfoCube alle Schlüsselmerkmale der Stammdatentabelle mit Merkmalen des InfoCubes gejoint werden.