Hello à tous,

Je rencontre de gros soucis de performance sur une mesure dans mon cube SSAS. J'ai un modèle basé sur une table d'actions en daily snapshot, et une table de faits qui pour chaque jour possède différents indicateurs qui prennent en valeur soit 1 soit 0. Je dois opérer différents calculs dessus.
L'un de ces calculs consiste à calculer un stock d'actions planifiées au matin, donc à checker si une action qui était planifiée à J-1 a été traitée ou non, pour cela, je possède un champ Action - Date Fin Version, si elle est renseignée avec la date J-1, c'est qu'elle a été traitée à J-1, donc je ne dois pas la comptabiliser comme étant en stock au matin à J. Les actions possèdent un identifiant dont je me sers dans le scope ci-dessous.

Ce calcul marche bien mais est extrêmement lent, en sachant que le but est de monter un rapport présentant ces stocks par gestionnaire et par jour sur une semaine, voir un mois... pour vous donner un ordre d'idée, ce calcul met à peu près 3 à 4 min à s'exécuter pour un jour donné...

Voici le calcul en question :

SCOPE([Measures].[Stock Action Planifiées Matin]);
SCOPE([OASIS D Action].[Action - Date Fin Version].[Action - Date Fin Version].MEMBERS);
SCOPE([OASIS D Action].[Action - Identifiant].[Action - Identifiant].MEMBERS);
THIS = IIF([Measures].[Action Planifiée J-1] = 1 and
[Measures].[Date J-1] <>
[OASIS D Action].[Action - Date Fin Version].CurrentMember.MEMBERVALUE
,[Measures].[Action Planifiée J-1],NULL);
END SCOPE;
END SCOPE;
END SCOPE;

Je précise que [Measures].[Date J-1] permet de remonter la date de la veille, j'avais au début placé un [OASIS D Date].[Date Id].PrevMember.MEMBERVALUE, mais cela s'avère encore plus lent...
De la même façon, j'ai essayé au début uniquement avec le IIF, mais c'était encore plus lent également...

Pour plus de précisions, la mesure ,[Measures].[Action Planifiée J-1] est issue de ce calcul :

COALESCEEMPTY(
([Measures].[Action Planifiée],
ParallelPeriod(
[OASIS D Date].[Date Id].[Date Id],
1,
[OASIS D Date].[Date Id].CurrentMember))
,0)


Si quelqu'un a une idée sur comment optimiser ce calcul, je suis preneur, j'ai essayé plein de choses (découpage en plusieurs mesures, modification du scope, etc...) mais sans aucun résultat...