Optimiser avec l'analyseur de performances
L'analyseur de performances mesure le temps de chargement de chaque visuel d'une page de rapport et le décompose par catégorie. Il permet de savoir quel visuel ralentit le rapport et pourquoi : requête DAX trop lourde, rendu trop complexe ou attente derrière d'autres visuels.
- Disponible dans Power BI Desktop (vue Rapport) et dans le service Power BI (rapport en mode Modifier).
- Il mesure ce que l'utilisateur ressent : ouverture de page, clic sur un segment, filtre croisé, exploration.
- Source
1- Préparer une mesure fiable
- Commencer le diagnostic dans Power BI Desktop, puis isoler le problème sur un seul visuel avant d'examiner toute la page. Source
- Garder en tête que le poste de l'auteur n'est pas le service : volume de données, nombre d'utilisateurs simultanés, mode de stockage, passerelle, capacité et cache de requêtes peuvent différer. Source
- Conseil pratique : ajouter une page vide temporaire, démarrer l'enregistrement depuis cette page, puis basculer sur la page à tester, pour que tous ses visuels se chargent pendant l'enregistrement.
- Lancer chaque mesure deux ou trois fois et comparer des passages équivalents (premier chargement ou chargements suivants).
2- Ouvrir l'analyseur de performances
Dans Power BI Desktop
- Se placer en vue Rapport.
- Ruban Optimiser > Analyseur de performances.
- Le volet s'ouvre à droite du canevas.
Capture d'écran à insérer | Ruban « Optimiser » de Power BI Desktop, avec le bouton « Analyseur de performances » encadré, et le volet ouvert à droite du canevas (boutons « Démarrer l'enregistrement », « Actualiser les visuels », « Arrêter », « Effacer », « Exporter » visibles).
Dans le service Power BI
- Ouvrir le rapport, puis cliquer sur Modifier.
- Menu Affichage > Analyseur de performances.
3- Enregistrer les interactions
- Cliquer sur Démarrer l'enregistrement : le bouton devient grisé et Arrêter s'active.
- Aller sur la page à analyser (depuis la page vide), ou cliquer sur Actualiser les visuels pour mesurer tous les visuels de la page courante.
- Pour un seul visuel : survoler le visuel et cliquer sur l'icône Analyser ce visuel (en haut à droite du visuel).
- Reproduire le scénario lent signalé par les utilisateurs : changer un segment, cliquer sur une barre, explorer une hiérarchie…
- Cliquer sur Arrêter. Les résultats restent affichés pour l'analyse.
- Effacer vide le volet sans rien enregistrer.
Chaque interaction ouvre une nouvelle section dans le volet (par exemple « Segment modifié », « Actualisé »), suivie de la liste des visuels rechargés, dans l'ordre de chargement.
Capture d'écran à insérer | Volet « Analyseur de performances » pendant un enregistrement, montrant une section « Segment modifié » et la liste des visuels rechargés avec leur durée totale en millisecondes.
Capture d'écran à insérer | Un visuel du rapport survolé, avec l'icône « Analyser ce visuel » encadrée dans son coin supérieur droit.
4- Lire les durées
Développer un visuel (flèche +) affiche sa durée totale décomposée en catégories :
| Catégorie | Ce qu'elle mesure | Si elle est élevée |
| Requête DAX | Temps entre l'envoi de la requête par le visuel et le retour des résultats par le modèle sémantique | Optimiser la mesure DAX, le modèle (relations, cardinalité, colonnes calculées) ou réduire les données interrogées |
| Requête directe | Temps de la requête envoyée à la source externe (tables en mode DirectQuery) | Optimiser la source (index, vues), passer en Import ou en mode composite, ajouter des agrégations |
| Affichage visuel | Temps de dessin du visuel à l'écran, y compris images web et géocodage | Simplifier le visuel, réduire le nombre de points affichés, tester un autre visuel (surtout les visuels personnalisés) |
| Autre | Préparation des requêtes, attente que d'autres visuels se terminent, traitements en arrière-plan | Réduire le nombre de visuels sur la page, utiliser des pages d'extraction ou des infos-bulles |
| Paramètres évalués (préversion) | Temps d'évaluation des paramètres de champ du visuel | Limiter le nombre de champs proposés dans le paramètre |
À retenir :
- Les durées sont en millisecondes et correspondent à l'écart entre un horodatage de début et de fin.
- Les opérations du canevas s'exécutent sur un seul thread partagé : une durée « Autre » élevée signifie souvent que le visuel attend les autres, pas qu'il est lent lui-même.
- Commencer par le visuel dont la durée totale est la plus longue, puis regarder quelle catégorie domine.
- Source
Capture d'écran à insérer | Un visuel développé dans le volet, montrant les lignes « Requête DAX », « Affichage visuel » et « Autre » avec leurs durées, et les liens « Copier la requête » et « Exécuter dans la vue de requête DAX ».
5- Copier la requête DAX et l'analyser
Chaque visuel envoie une requête DAX au modèle. Dans le volet, sous un visuel développé :
- Copier la requête : copie la requête DAX dans le presse-papiers. En DirectQuery, elle contient aussi la requête traduite en SQL (ou KQL).
- Exécuter dans la vue de requête DAX (Power BI Desktop uniquement) : ouvre la requête dans la vue de requête DAX, l'exécute et affiche la grille de résultats utilisée par le visuel.
- Dans le service : coller la requête copiée dans la vue de requête DAX de la modélisation web (Ouvrir le modèle de données).
La requête générée par un visuel est plus verbeuse que nécessaire (variables, TOPN…). Dans la vue de requête DAX, Copilot peut la simplifier avec le prompt Remove the VARs and TOPN and simplify this DAX query.
Capture d'écran à insérer | Vue de requête DAX de Power BI Desktop avec la requête d'un visuel collée dans l'éditeur, exécutée, et la grille de résultats affichée en dessous.
Aller plus loin avec DAX Studio (outil gratuit)
- Coller la requête copiée dans l'éditeur de DAX Studio, connecté au fichier Power BI Desktop ouvert.
- Activer Server Timings avant d'exécuter la requête : le temps se répartit entre le moteur de formules (FE) et le moteur de stockage (SE), et les requêtes internes envoyées à VertiPaq s'affichent.
- Modifier la mesure, relancer et comparer les durées.
6- Exporter les résultats (JSON)
- Après Arrêter, cliquer sur Exporter.
- Enregistrer le fichier
.json(par défaut PowerBIPerformanceData.json). - Conserver un export avant et après chaque optimisation pour documenter le gain.
Le fichier peut être rouvert dans DAX Studio (bouton Load Perf Data) :
- les visuels et leurs durées s'affichent dans une grille triable et filtrable ;
- un double-clic sur une ligne envoie la requête DAX du visuel dans l'éditeur ;
- la durée « Autre » n'est pas importée.
- Source DAX Studio
- Source Microsoft Learn
Capture d'écran à insérer | Boîte de dialogue « Enregistrer sous » de Windows montrant l'enregistrement du fichier PowerBIPerformanceData.json, puis la grille « PBI Performance » de DAX Studio après import.
7- Démarche d'optimisation
- Mesurer : enregistrer le scénario lent et exporter le JSON de référence.
- Cibler : trier par durée totale et identifier la catégorie dominante du visuel le plus lent.
- Agir selon la catégorie :
- Requête DAX : revoir la mesure (variables, éviter les itérateurs sur de grosses tables,
DIVIDE…) et le modèle (Réduire la taille du modèle) ; - Requête directe : optimiser la source ou le mode de stockage ;
- Affichage visuel : simplifier ou remplacer le visuel ;
- Autre : alléger la page.
- Requête DAX : revoir la mesure (variables, éviter les itérateurs sur de grosses tables,
- Mesurer à nouveau dans les mêmes conditions et comparer les deux exports.
Exercice
- Ouvrir un rapport comportant au moins une page avec cinq visuels ou plus.
- Ajouter une page vide, démarrer l'enregistrement, puis basculer sur la page à tester.
- Identifier le visuel le plus lent et la catégorie qui domine.
- Copier sa requête et l'exécuter dans la vue de requête DAX.
- Exporter le JSON, appliquer une optimisation (filtre « N premiers », mesure simplifiée, visuel supprimé…), mesurer à nouveau et comparer.
Pour aller plus loin :
- Utiliser l'analyseur de performances pour examiner les performances des rapports | Microsoft Learn
- Surveiller les performances des rapports dans Power BI | Microsoft Learn
- Résoudre les problèmes de performances de rapports dans Power BI | Microsoft Learn
- Importing Performance Analyzer data in DAX Studio | SQLBI