2016-06-08 16 views
0

Ich baue einen kleinen Würfel und habe ein Problem mit der Erstellung der Berechnungen.SSAS Standardabweichung Berechnung

Cube View

Alles in allem möchte ich einige auf dem Plugin basierte Werte. Als Beispiel möchte ich die Standardabweichung der Ausführungszeit.

Etwas wie folgt aus:

SELECT Plugin.PluginId, AVG(Task.ExecutionTimeMs) AS Mean 
, STDEVP(Task.ExecutionTimeMs) AS [Standard Deviation] 
, STDEVP(Task.ExecutionTimeMs) * STDEVP(Task.ExecutionTimeMs) AS Variance 
FROM Task 

In meinem Analysis Project habe ich eine Berechnung mit dem folgenden Ausdruck:

STDEVP([Finished Tasks], [Measures].[Execution Time Ms Sum]) 

, die nicht funktioniert hat. Ich habe einige andere Funktionen ausprobiert (MAX, AVG), aber keine funktionierte wie beabsichtigt, also mache ich offensichtlich etwas falsch.

Was ist der richtige Weg, um solche Maßnahmen zu erstellen?

Antwort

0

Angenommen, Sie sprechen über SSAS Multidimensional, dann StDevP MDX ist eine ziemlich teure Funktion in Ihrem Fall zu verwenden, weil es auf der Blattebene (Faktentabelle Zeilenebene oder Task-Ebene in Ihrem Fall) berechnet werden muss. Wenn Sie mehr als ein paar tausend Aufgaben haben, würde ich eine Optimierung empfehlen, die gut funktioniert und die richtige Anzahl erreicht.

Diese Idee stammt von dieser thread.

  1. Last in einer einfachen SUM Maß (x) - die Summe der Tatsache Säule (im Würfel aggregiert)
  2. Last in einer einfachen SUM Maß für x quadriert (x2) - Summe aus Quadrat der Tatsache Säule (im Würfel aggregiert)
  3. Last in einem Zähler cnt genannt - Zählung einer Tatsache Säule (im Würfel aggregiert)

[die Berechnung MDX wäre dann:]

((x2 - ((x^2)/cnt))/cnt)^0,5

Verwandte Themen