Itérateurs et transitions de contexte dans les requêtes DAX

Ce didacticiel abordera la transition de contexte et les itérateurs imbriqués. Vous apprendrez l'importance de ces entités et comment elles peuvent être une bonne source d'optimisation.

Si vous vous en souvenez, la transition de contexte se produit lorsqu'un contexte de ligne se transforme en un contexte de filtre équivalent. Vous devez être conscient de ce qui se passe lorsqu'une transition de contexte se produit dans vos itérateurs, car elle peut souvent générer des résultats lents.

Table des matières

Itérateurs imbriqués versus CALCULATE

Si une transition de contexte est invoquée lors d'une itération, une table de matérialisation est créée. Cela signifie que la transition de contexte est appelée via les formules de votre DAX. Le tableau est une donnée non compressée qui est envoyée au moteur de formule.

Pour illustrer, la première mesure concerne les grandes ventes qui obtiennent le prix actuel s'il est supérieur ou égal à 500.

Itérateurs et transitions de contexte dans les requêtes DAX

La mesure suivante concerne la moyenne des grosses ventes avec des itérateurs imbriqués.

Itérateurs et transitions de contexte dans les requêtes DAX

La dernière mesure obtient la moyenne des grosses ventes sans itérateur imbriqué ni CallBackDataID.

Itérateurs et transitions de contexte dans les requêtes DAX

Exécutez la mesure avec l'itérateur imbriqué. Assurez-vous de vider le cache avant l'exécution, puis activez la synchronisation du serveur et le plan de requête.

Itérateurs et transitions de contexte dans les requêtes DAX

Vous pouvez voir qu'il a généré 3 analyses, 2 CallBackDataID et 15 003 lignes. C'est une source de préoccupation car il n'y a que 101 lignes pour la sortie. Cela s'est produit parce que la mesure a deux itérateurs ou fonctions X.

Voici la forme entièrement développée de la mesure qui a été exécutée :

Itérateurs et transitions de contexte dans les requêtes DAX

Il itère la table Fact Sales avec . Il réitère ensuite à nouveau avec le CallBackDataID en utilisant . implicite qui appelle la transition de contexte et matérialise la table. C'est pourquoi il a extrait 15 003 lignes, même s'il n'y a que 101 lignes pour la sortie.

Exécutez l'autre mesure qui n'a pas d'itérateurs imbriqués. Il itère toujours la table Fact Sales en utilisant AVERAGEX mais le prix actuel est en dehors de la fonction. Il filtre les produits dont le prix actuel est supérieur ou égal à 500, puis calcule la moyenne.

Itérateurs et transitions de contexte dans les requêtes DAX

Vous pouvez voir qu'il n'a que 2 analyses, 104 lignes et n'a pas de CallBackDataID. Donc, si vous utilisez CALCULATE , vous pouvez vous débarrasser des itérateurs imbriqués et des CallBackDataIDs .


Fonctions DAX dans LuckyTemplates : Utilisation d'itérateurs
Comment utiliser une fonction d'itération dans LuckyTemplates
Calcul DAX - Filtrer les transitions de contexte

Conclusion

Il existe de nombreuses causes pour un DAX lent. L'un d'eux est dû aux itérateurs imbriqués qui provoquent des transitions de contexte inutiles. Ces itérateurs matérialisent plus de lignes que nécessaire, ce qui ralentit vos requêtes.

La meilleure solution pour cela est de le placer dans CALCULATE . Cela crée moins de travail pour le moteur de formule et maximise les capacités du moteur de stockage.

Leave a Comment

Gestion des erreurs dans Power Automate via le branchement parallèle

Gestion des erreurs dans Power Automate via le branchement parallèle

Découvrez l

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Dans ce blog, vous découvrirez comment diviser les colonnes dans LuckyTemplates par délimiteurs à l'aide de DAX, une méthode efficace pour gérer des modèles de données complexes.

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculez la marge en pourcentage à l

Modifier les formats de date à laide de léditeur Power Query

Modifier les formats de date à laide de léditeur Power Query

Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d

Comment adapter les cellules Excel au texte : 4 solutions simples

Comment adapter les cellules Excel au texte : 4 solutions simples

Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.