La release de Mai contient une nouveauté de choix ! Un panneau supplémentaire sur PowerBI Desktop qui permet de faciliter l’analyse des performances !
En effet, jusqu’ici lors de mes formations sur l’optimisation Dax, à un public plutôt « métier » je me retrouvais à expliquer… comment utiliser SQL Server Profiler afin de récupérer les requêtes DAX générées par PowerBI pour ensuite les analyser avec Dax Studio. Plus besoin, on peut enfin :
- Voir l’impact du DAX sur le temps de réponse du rapport
- Récupérer la requête générée !
Afficher le panneau « analyseur de performances »
Afin d’afficher le panneau, il est nécessaire de se rendre dans affichage puis de cocher la case « Analyseur de performances ».

Cela a pour effet d’afficher un panneau sur la droite qui permet de démarrer un enregistrement puis d’actualiser les visuels afin d’obtenir des informations sur les performances de ceux-ci.

Lorsque les informations sont capturées il ne reste plus qu’à arrêter la trace puis à analyser les résultats.

Afin de récupérer la requête DAX générée il est nécessaire de cliquer sur « Copier la requête ». Il ne restera qu’à la copier dans Dax Studio afin de pouvoir commencer à l’optimiser si celle-ci est responsable d’un temps de traitement trop important.
Si vous vous demandez à quoi correspond la valeur autre, cela correspond au mécanisme interne de PowerBI sur lequel vous n’avez manifestement pas la main 🙂
// DAX Query
DEFINE VAR __DS0FilterTable =
TREATAS(
{("162", "13.3", "Rocquefort", "31.2", "18.7", "83.5", "432")},
'fromage'[calcium],
'fromage'[folates],
'fromage'[Fromages],
'fromage'[lipides],
'fromage'[proteines],
'fromage'[retinol],
'fromage'[sodium]
)
EVALUATE
TOPN(
150002,
CALCULATETABLE(
SUMMARIZE(
'fromage',
'fromage'[calcium],
'fromage'[calories],
'fromage'[cholesterol],
'fromage'[folates],
'fromage'[Fromages],
'fromage'[lipides],
'fromage'[magnesium],
'fromage'[proteines],
'fromage'[retinol],
'fromage'[sodium]
),
KEEPFILTERS(__DS0FilterTable)
),
'fromage'[calcium],
1,
'fromage'[calories],
1,
'fromage'[cholesterol],
1,
'fromage'[folates],
1,
'fromage'[Fromages],
1,
'fromage'[lipides],
1,
'fromage'[magnesium],
1,
'fromage'[proteines],
1,
'fromage'[retinol],
1,
'fromage'[sodium],
1
)
ORDER BY
'fromage'[calcium],
'fromage'[calories],
'fromage'[cholesterol],
'fromage'[folates],
'fromage'[Fromages],
'fromage'[lipides],
'fromage'[magnesium],
'fromage'[proteines],
'fromage'[retinol],
'fromage'[sodium]