L’utilisation de variables dans DAX pour Power BI est généralement bénéfique, mais il existe des situations dans lesquelles leur utilisation peut s’avérer inutile, voire contre-productive. Comprendre quand ne pas utiliser les variables est tout aussi important que savoir quand les utiliser. Voici quelques scénarios dans lesquels il pourrait être conseillé d’éviter les variables :
1. Expressions simples ou constantes
Lorsqu'il s'agit d'expressions ou de constantes très simples, l'introduction de variables peut être excessive et ajouter une complexité inutile à votre formule.
Exemple :
MesureSimple =
VAR Cent = 100
RETOUR
Cent
Dans ce cas, utiliser directement le nombre 100
au lieu de déclarer une variable serait plus simple.
2. Calculs à usage unique
Si un calcul n'est utilisé qu'une seule fois dans votre formule, son encapsulation dans une variable pourrait ne pas apporter d'avantages en termes de performances et rendre la formule moins directe.
Exemple :
Variable à usage unique =
VAR Ventes totales = SOMME (Ventes[Montant])
RETOUR
Ventes totales
Ici, utiliser SUM(Sales[Amount])
directement dans l'instruction RETURN
serait plus efficace.
3. Situations nécessitant une réévaluation du contexte de ligne
Dans les calculs où le contexte de ligne doit être réévalué dynamiquement, l'utilisation d'une variable peut ne pas fonctionner comme prévu. Les variables sont évaluées une seule fois et conservent leur valeur, ce qui peut ne pas convenir aux calculs dynamiques au niveau des lignes.
Exemple :
DynamicRowContext =
VAR PrixMoyen = MOYENNE(Produit[Prix])
RETOUR
SUMX (Produit, Produit [Prix] - Prix moyen)
Dans ce cas, le AveragePrice
ne changera pas dynamiquement pour chaque ligne de la fonction SUMX
.
4. Débogage trop compliqué
Lors du débogage de formules DAX complexes, l’introduction d’un trop grand nombre de variables peut parfois rendre plus difficile la localisation d’une erreur ou d’un mauvais calcul. Simplifier la formule en réduisant le nombre de variables peut parfois faciliter le débogage.
5. Calculs gourmands en mémoire
Le stockage de très grandes tables ou d'ensembles de données filtrés complexes dans des variables peut consommer une mémoire importante, ce qui peut avoir un impact sur les performances. Dans les cas où une variable contient une grande quantité de données, il est important d’évaluer si l’avantage de l’utilisation de la variable l’emporte sur le coût potentiel en termes de performances.
Exemple :
LargeDatasetVariable =
VAR BigTable = FILTRE (BigDataSet, BigDataSet[Condition] = VRAI)
RETOUR
...
Ici, si BigDataSet
est très volumineux, le stocker dans une variable n’est peut-être pas optimal.
Conclusion
Les variables dans DAX sont des outils puissants, mais comme tout outil, elles ne constituent pas toujours le meilleur choix pour chaque situation. Comprendre les besoins spécifiques de votre formule et le contexte dans lequel elle fonctionne est essentiel pour décider d'utiliser ou non des variables. Dans de nombreux cas, la simplicité et la franchise peuvent être plus utiles que la complexité supplémentaire des variables.