「条件付き予測コスト」は、「コスト」と「予測」という指標に基づいたSCOPEステートメントコスト"。MDXを最適化する方法選択した半年に基づいて2つのメジャーを選択する方法(SCOPE、子孫ステートメントを含む)
これらのステートメントは正常に機能しますが、遅すぎます。特に報告書(またはそれ以上の年)でYEAR全体が選択された場合。待ち時間は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;
背景情報:
最初の文は、基本的なロジックを表します。
- 最初の半年が選択されている場合は、「コスト」を測定すると が適用されます。
- 下期については、「予測コスト」を測定すると、 が適用されます。
私たちが毎月のレベルで報告している限り、それはうまくいきます。エンジンは、我々は「IIF([DIM日付]。[半年]で にそれを定義した方法をaggrateないので、全体の年の最初のステートメントを集約する必要がある場合
- は十分ではありません です。& [1 ]、[対策]。[コスト] ...」。
だから、子孫機能を有する第二SCOPEステートメントは、下の月次レベルから集計を行うためにエンジンを強制します。 これまでに動作していることが、それはあります本当に遅い。
追加情報:
- 今はETLでMDXないとsemnaticレイヤ でこのロジックを実装することを好むため。
- "コスト"メジャーは、MDXで計算されたメジャーです。
- DIM日付ディメンションには、「YEAR-Month」( もちろんいくつかの追加の属性)の階層があります。
どうもありがとうございました。 MEASURESのMDXスクリプト。[コスト]は次のとおりです。スコープ(IIF(ISERROR([Measures]。[Cost])、{}、{[Measures]。[Cost]})); THIS = [指標]。[コスト0] + [指標]。[ブランドコスト]。 END SCOPE; ' –