0
[條件預測成本]是根據稱爲「成本」和「預測」的度量遵循範圍語句生成的成本」。如何根據所選的半年(涉及範圍,後代陳述)優化兩個度量之間應有條件決定的MDX
這些語句工作正常,但速度太慢。尤其是如果在報告中選擇整個年份(甚至更多年)。等待時間可能超過5分鐘。 任何想法如何優化這個MDX?
SCOPE ([Measures].[Conditional Forecast Cost]);
THIS = (IIF([DIM Date].[Half Year].&[1],[Measures].[Cost], [Measures].[Forecast Cost]));
END SCOPE;
SCOPE ([DIM Date].[Iso Month].[All].children, [Measures].[Forecast Costs]);
THIS = SUM(
Descendants(
[DIM Date].[Iso Month].CurrentMember,
[DIM Date].[Iso Month]
),
[Measures].[Conditional Forecast Cost]
);
END SCOPE;
背景資料:
首先聲明表示基本邏輯。
- 如果選擇上半年度量「成本」應該是 應用。
- 下半年的措施「預測成本」應該是 應用。
只要我們報告月度水平,這種方式就可以正常工作。
- 如果全年應該聚集的第一條語句是不是 不夠,因爲發動機將無法aggrate我們已經與「IIF([DIM日期] [半年]定義 的方式。& [1 ],[措施]。[費用] ...」。
因此,與後人的功能,第二SCOPE語句強制發動機從低月度水平做了彙總。 ,到目前爲止的作品,但它是真的很慢。
其他信息:
- 現在我們寧願在semnatic層 與MDX,而不是在ETL實現這個邏輯。
- 「成本」度量值也是MDX中的一個計算度量值。
- DIM日期維只有「YEAR月」( 當然有些附加屬性)。
非常感謝。用於測量的MDX腳本。[成本]是:'範圍(IIF(ISERROR([Measures]。[Cost]),{},{[Measures]。[Cost]})); THIS = [Measures]。[Costs 0] + [Measures]。[Brand Costs]; END SCOPE;' –