MicroStrategy ONE

Alle Ergebniselemente des letzten Durchlaufs beibehalten

Die folgende VLDB-Anweisung zum Beibehalten aller Ergebniselemente des abschließenden Durchlaufs -Eigenschaftseinstellungen legen fest, wie das Endergebnis sowie die Such- und Beziehungstabellen mit einem Outer-Join versehen werden:

  • Wenn Sie den Standardwert auswählen Gemeinsame Elemente aus Ergebnistabelle des letzten Durchlaufs und Such-/Beziehungstabelle beibehalten Option generiert die SQL-Engine einen Gleichstellungs-Join. Daher werden nur Elemente angezeigt, die beide Tabellen gemeinsam haben.
  • Wenn Sie sich für „“ entscheiden Outer-Join zwischen der Such- und Fakt-/Ergebnistabelle Option generiert die SQL-Engine einen Outer-Join und Ihr Bericht enthält alle Elemente, die im endgültigen Ergebnissatz enthalten sind. Wenn diese Einstellung aktiviert ist, werden für alle Joins von der Fakttabelle zur Suchtabelle sowie für alle Beziehungstabellen Outer-Joins generiert. Dies liegt daran, dass nicht zu unterscheiden ist, welche Tabelle als Suchtabelle und welche Tabelle als Beziehungstabelle verwendet wird – die beiden Rollen, die eine Tabelle häufig spielt. Zum Beispiel dient LUKUP_TAG sowohl als Suchtabelle für das Attribut „Tag“ als auch als Beziehungstabelle für Tag und Monat.

    Diese Einstellung sollte nicht in Standard-Data Warehouses verwendet werden, in denen die Suchtabellen ordnungsgemäß verwaltet werden und alle Elemente in der Fakttabelle Einträge in der jeweiligen Suchtabelle aufweisen. Es sollte nur verwendet werden, wenn ein bestimmtes Attribut in der Fakttabelle mehr (eindeutige) Attributelemente enthält als die entsprechende Suchtabelle. Im obigen Beispiel enthält die Fakttabelle Umsätze für fünf verschiedene Filialen, die Filialtabelle jedoch nur vier Filialen. Dies sollte in einem Standard-Data Warehouse nicht passieren, da die Suchtabelle per Definition alle Attributelemente enthalten sollte. Dies kann jedoch der Fall sein, wenn die Fakttabellen öfter aktualisiert werden als die Suchtabellen.

  • Wenn Sie sich für „“ entscheiden Alle Elemente der letzten Anweisung der Ergebnistabelle für die Suchtabelle, jedoch nicht für die Beziehungstabelle beibehalten Option generiert die SQL-Engine einen Inner-Join bei allen Durchläufen mit Ausnahme des letzten Durchlaufs; beim letzten Durchlauf wird ein Outer-Join generiert.
  • Wenn Sie sich für „“ entscheiden Einstellung auf Berichtebene nicht beachten, Elemente des letzten Durchlaufs entsprechend der Einstellung auf Attributebene beibehalten. Wenn diese Option auf Attributebene ausgewählt ist, entspricht das Verhalten der Option zum Beibehalten gemeinsam verwendeter Elemente (d. h. Auswahl 1 ) , wird die Einstellung für diese VLDB-Eigenschaft auf Attributebene verwendet.

    Diese Einstellung ist sinnvoll, wenn Sie nur wenige Attribute haben, die unterschiedliche Join-Typen erfordern. Wenn zum Beispiel nur eines der Attribute in einem Bericht benötigt wird, um Elemente aus der Tabelle des letzten Durchlaufs beizubehalten, können Sie die VLDB-Eigenschaft auf festlegen Alle Ergebniselemente des letzten Durchlaufs beibehalten Einstellung für dieses eine Attribut. Sie können dann den Bericht auf festlegen Nicht zuhören Einstellung für die VLDB-Eigenschaft. Wenn der Bericht ausgeführt wird, verursacht nur das unterschiedlich festgelegte Attribut einen Outer-Join in SQL. Alle anderen Attribut-Suchtabellen werden unter Verwendung eines Equal-Joins verbunden, was zu einer höheren SQL-Leistung führt.

Beispiel: Gemeinsame Elemente aus Ergebnistabelle des letzten Durchlaufs und Such-/Beziehungstabelle beibehalten

Ein Bericht enthält Filialumsätze und Umsätze in Dollar in der Schablone.

Die Option „Gemeinende Elemente aus Ergebnistabelle des letzten Durchlaufs und Suchtabelle beibehalten“ gibt die folgenden Ergebnisse unter Verwendung des unten stehenden SQL zurück.

Speichern Verkäufe in Dollar

Osten

5000

Zentral

8000

Süd

12000

select a11.Store_id Store_id,
 max(a12.Store) Store,
 sum(a11.DollarSls) WJXBFS1
from Fact a11
 join Store a12
 am (a11.Store_id = a12.Store_id)
GROUP BY a11.Store_id

Beispiel: Outer-Join zwischen der Such- und Fakt-/Ergebnistabelle

Ein Bericht enthält Filialumsätze und Umsätze in Dollar in der Schablone.

Die Option „Alle Elemente der Ergebnistabelle des letzten Durchlaufs beibehalten“ Beachten Sie, dass jetzt die Daten für die Store_IDs 4 und 5 angezeigt werden.

Speichern Verkäufe in Dollar

Osten

5000

Zentral

8000

Süd

12000

 

3000

 

1500

select a11.Store_id Store_id,
 max(a12.Store) Store,
 sum(a11.DollarSls) WJXBFS1
from Fact a11
 Left-Outer-Join Store a12
 am (a11.Store_id = a12.Store_id)
GROUP BY a11.Store_id

Beispiel: Alle Elemente der letzten Anweisung der Ergebnistabelle für die Suchtabelle, jedoch nicht für die Beziehungstabelle beibehalten

Ein Bericht enthält das Land, die Metrik 1 und die Metrik 2 in der Schablone. Für jede Metrik sind die folgenden Fakttabellen vorhanden:

CVALCSERVER_ID Fakt 1

1

1000

2

2000

1

1000

2

2000

3

1000

4

1000

 

EMPLOORY_ID Fakt 2

1

5000

2

6000

1

5000

2

6000

3

5000

4

5000

5

1000

Die SQL-Engine führt drei Durchläufe durch. Im ersten Durchlauf berechnet die SQL-Engine die Metrik 1. Der SQL-Engine-Inner verknüpft die obige Tabelle „Fakttabelle (Metrik 1)“ mit der Call-Center-Suchtabelle „LU_Call_CTR“ unten:

CVALCSERVER_ID COUNTRY_ID

1

1

2

1

3

2

, um die folgende temporäre Tabelle der Metrik 1, gruppiert nach Land, unter Verwendung des folgenden SQL zu erstellen:

COUNTRY_ID Metrik 1

1

6000

2

1000

create table ZZSP00 nologging as
select a12.COUNTRY_ID COUNTRY_ID,
 sum((a11.QTY_SOLD * a11.DISCOUNT))
WJXBFS1
from ORDER_DETAIL a11, 
 LU_CALL_CTR a12
where a11.CALL_CTR_ID = a12.CALL_CTR_ID
group by a12.COUNTRY_ID

Im zweiten Durchlauf wird Metrik 2 berechnet. Die SQL-Engine-Inner-Join-Funktion „Fakttabelle (Metrik 2)“ oben mit der Mitarbeiter-Suchtabelle „LU_EMPLOT“ unten:

EMPLOORY_ID COUNTRY_ID

1

1

2

2

3

2

So erstellen Sie die folgende temporäre Tabelle der Metrik 2, gruppiert nach Land, unter Verwendung des folgenden SQL:

COUNTRY_ID Metrik 2

1

10000

2

17000

create table ZZSP01 nologging as
a12.COUNTRY_ID COUNTRY_ID auswählen,
 Summe(a11.FREight) WJXBLS1
aus ORDER_FECT a11, 
 LU_EMPLOOE a12
where a11.EMP_ID = a12.EMP_ID
group by a12.COUNTRY_ID 

Im dritten Durchlauf verwendet die SQL-Engine die folgende Länder-Suchtabelle, „LU_COUNTRY“,:

COUNTRY_ID COUNTRY_DESC

1

USA

3

Europa

Die SQL-Engine stellt einen Left-Outer-Join mit der obigen metric1_tempatable und der LU_COUNTRY-Tabelle her. Die SQL-Engine führt dann einen Left-Outer-Join mit der obigen metric2_tempatable-Anweisung und der Tabelle LU_COUNTRY durch. Abschließend führt die SQL-Engine einen Inner-Join mit den Ergebnissen des dritten Durchlaufs durch, um die endgültigen Ergebnisse zu erstellen.

Die Option „Alle Elemente der letzten Anweisung der Ergebnistabelle für die Suchtabelle, aber nicht für die Beziehungstabelle beibehalten“ gibt die folgenden Ergebnisse unter Verwendung des unten stehenden SQL zurück.

COUNTRY_ID COUNTRY_DESC Metrik 1 Metrik 2

1

USA

6000

10000

2

 

1000

17000

select pa1.COUNTRY_ID COUNTRY_ID,
 a11.COUNTRY_NAME COUNTRY_NAME,
 Pa1.WJXBfs1 WJXBfs1,
 Pa2.WJXBfs1 WJXBfs2
aus CCSP00 p1, 
 ZZSP01 pa2, 
 LU_COUNTRY a11
wobei Pa1.COUNTRY_ID = Pa2.COUNTRY_ID und 
 Pa1.COUNTRY_ID = a11.COUNTRY_ID (*)