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

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.


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir