PowerPivot Tuning Tipp Nr. 1: Schlüsselwerte immer als Integer Wert definieren
avatar

Abfrageergebnisse werden unter PowerPivot manchmal als Textfeld gespeichert. Falls die ursprüngliche Datenquelle die Schlüsselfelder idealerweise als integer abgespeichert hat, sollten Sie überprüfen, ob der Datentyp (Data Type) als “Ganze Zahl” (Whole Number) markiert ist.

 

image

Oftmals haben die Datenquellen, die den PowerPivots zugrunde liegen aber keine Integer- Schlüsselfelder. Wie bei dem großen Bruder, den Analysis Services, sollten auch bei PowerPivot Tabellen die Schlüsselfelder unbedingt aus Integer-Werten bestehen. Um diese Regel umzusetzen, kann es erforderlich sein, schon bei der Abfrage auf die Quelldaten ein solches Integer-Wert Feld zu definieren.
Beispiel aus der AdventureWorksDW2008 R2 Datenbank, in der wir exemplarisch einen neuen Key erstellen auf Basis eines Varchar-Feldes und ihn mit dem vorhandenen CurrencyKey vergleichen:
select

CurrencyName,

DENSE_RANK()OVER (ORDERBY CurrencyName)as CurrencyNewKey,

CurrencyKey

from dbo.DimCurrency;

image

Dieses Szenario müsste erweitert werden, um in der Faktentabellen-Abfrage die Dimension entsprechend der in der Abfrage erzeugten Schlüsselwerte zu ersetzen. In unserer Beispiel Datenbank ist alles vorbildlich umgesetzt:

SELECT   DC.CurrencyName, FactInternetSales.*

FROM         FactInternetSales INNERJOIN

(Select CurrencyKey, CurrencyName from  DimCurrency)as DC ON FactInternetSales.CurrencyKey = DC.CurrencyKey

image

Wenn es aber das CurrencyKey Feld nicht gäbe, würde die Abfrage analog wie folgt aussehen:

SELECT   DC.CurrencyKey, FactInternetSales.*

FROM         FactInternetSales INNERJOIN

(SelectDENSE_RANK()OVER (ORDERBY CurrencyName)as CurrencyKey,

CurrencyName from  DimCurrency)as DC ON FactInternetSales.CurrencyName = DC.CurrencyName

Entsprechend sollten alle weiteren Dimensionen auf diese Art ersetzt werden. Damit ist schon eine sehr große Performance-Bremse gelöst.

 

Bereits in dieser Serie erschienen:

PowerPivot Tuning Tipp Nr. 1: Schlüsselwerte immer als Integer Wert definieren

PowerPivot Tuning Tipp Nr. 2: Nur benötigte Felder importieren

PowerPivot Tuning Tipp Nr. 3: Möglichst wenig Tabellen und Verknüpfungen

PowerPivot Tuning Tipp Nr. 4: N:M (Many-to-Many) Beziehungen vermeiden

Schreibe einen Kommentar