Diagnostics de requête
Avec Diagnostic de requête, vous pouvez mieux comprendre ce que Power Query fait lors de la création et de l’actualisation dans Power BI Desktop. Même si nous sommes appelés à enrichir cette fonctionnalité, notamment en ajoutant la possibilité de l’utiliser pendant les actualisations complètes, vous pouvez déjà l’utiliser pour comprendre le type de requêtes que vous émettez, les ralentissements que vous pouvez connaître pendant les opérations d’actualisation et de création et le type d’événements en arrière-plan qui se produisent.
Pour utiliser Query Diagnostics, accédez à l’onglet Outils dans le ruban de l’éditeur Power Query.
Par défaut, l’exécution de Diagnostic de requête peut nécessiter des droits d’administration (en fonction de la stratégie informatique). Si vous ne parvenez pas à exécuter Diagnostic de requête, ouvrez la page d’options Power BI Desktop et, sous l’onglet Diagnostics, sélectionnez Activer dans l’Éditeur de requête (ne nécessite pas l’exécution en tant qu’administrateur). Cette sélection vous empêche de suivre les diagnostics lors d’une actualisation complète dans Power BI plutôt que dans l’Éditeur Power Query. Toutefois, vous pouvez toujours l’utiliser lors de l’aperçu, de la création, etc.
Chaque fois que vous démarrez des diagnostics, Power Query commence le suivi des évaluations que vous provoquez. L’évaluation à laquelle pensent la plupart des utilisateurs est celle liée au fait d’appuyer sur le bouton d’actualisation ou de récupérer des données pour la première fois. Toutefois, de nombreuses actions peuvent entraîner des évaluations, selon le connecteur. Par exemple, avec le connecteur SQL, quand vous récupérez une liste de valeurs à filtrer, cela déclenche également une évaluation ; même si celle-ci n’est pas associée à une requête utilisateur, elle est représentée dans les diagnostics. D’autres requêtes générées par le système peuvent inclure le navigateur ou l’expérience d’obtention de données.
Quand vous appuyez sur Diagnostiquer l’étape, Power Query exécute une évaluation spéciale uniquement de l’étape que vous examinez. Il vous montre ensuite les diagnostics de cette étape, sans afficher les diagnostics des autres étapes de la requête. Cette évaluation peut grandement faciliter l’appréciation d’un problème.
Si vous enregistrez toutes les traces à partir de Démarrer les diagnostics, il est important que vous appuyiez sur Arrêter les diagnostics. L’arrêt des diagnostics permet au moteur de collecter les traces enregistrées et de les analyser dans la sortie appropriée. Sans cette étape, les traces sont perdues.
Nous fournissons trois types de diagnostics, dont l’un a deux niveaux de détail.
Le premier de ces diagnostics est le diagnostic principal, qui a une vue détaillée et une vue résumée. La vue résumée est destinée à vous donner un insight immédiat des phases de votre requête qui prennent du temps. La vue détaillée est beaucoup plus profonde, ligne par ligne, et est, en général, uniquement nécessaire pour des opérations de diagnostic poussées effectuées par des utilisateurs avec pouvoir.
Pour cette vue, certaines fonctionnalités, telles que la colonne Requête de source de données, sont disponibles uniquement sur certains connecteurs. Nous travaillerons à étendre cette couverture à l’avenir.
Les partitions de confidentialité des données vous permettent de mieux comprendre les partitions logiques utilisées pour la confidentialité des données.
Notes
Power Query peut effectuer des évaluations que vous n’avez peut-être pas déclenchées directement. Certaines de ces évaluations sont effectuées afin de récupérer les métadonnées pour que nous puissions optimiser nos requêtes ou offrir une meilleure expérience utilisateur (par exemple, la récupération de la liste des valeurs distinctes d’une colonne affichées dans l’expérience Filtrer les lignes). D’autres peuvent être liées à la façon dont un connecteur gère les évaluations parallèles. De votre côté, si vous voyez dans vos diagnostics de requête des requêtes répétées qui ne vous semblent pas logiques, n’hésitez pas à nous contacter par le biais des canaux de support habituels : c’est grâce à vos commentaires que nous améliorons notre produit.
Diagnostic de requête fournit deux vues : la vue résumée et la vue détaillée. La vue résumée « réduit » plusieurs opérations associées en une seule opération. Dans ce processus, les détails collectés par chaque opération sont combinés et les durées exclusives sont additionnées. Aucune information n’est perdue dans le cadre de ce processus.
La vue résumée fournit une vue d’ensemble de ce qui s’est produit pendant une évaluation pour faciliter l’examen général. Si une décomposition supplémentaire est souhaitée pour une opération spécifique, vous pouvez examiner l’ID de groupe et afficher les opérations correspondantes qui ont été regroupées dans la vue détaillée.
Lors d’une actualisation dans l’Éditeur Power Query, il y a beaucoup de choses effectuées en arrière-plan pour tenter de vous offrir une expérience utilisateur fluide. Par exemple, quand vous actualisez l’aperçu, l’évaluateur exécute l’étape finale de chaque requête donnée. Mais en arrière-plan, il exécute séquentiellement n-1 étapes, n-2 étapes, et ainsi de suite. Par conséquent, si vous remontez les étapes, il est déjà disponible.
Pour fournir des performances plus élevées, certaines mises en cache se produisent afin qu’il n’ait pas à réexécuter toutes les parties du plan de requête final à mesure qu’il remonte les étapes. Même si cette mise en cache est utile pour la création normale, cela signifie que vous n’obtenez pas toujours des informations de comparaison d’étapes correctes si des évaluations ultérieures extraient des données mises en cache.
Lors de l’analyse des résultats d’un enregistrement, il est important de filtrer la session d’enregistrement par ID, afin que les colonnes telles que % de durée exclusive soient pertinentes.
L’ID est un identificateur composite. Il est formé de deux nombres : un avant le point et un après. Le premier nombre est le même pour toutes les évaluations résultant d’une seule action utilisateur. En d’autres termes, si vous appuyez deux fois sur Actualiser, il y a deux nombres différents avant le point, un pour chaque activité utilisateur effectuée. Cette numérotation est séquentielle pour un enregistrement de diagnostic donné.
Le second nombre représente une évaluation par le moteur. Ce nombre est séquentiel pour la durée de vie du processus dans lequel l’évaluation est mise en file d’attente. Si vous exécutez plusieurs sessions d’enregistrement de diagnostic, vous pouvez constater que ce nombre croît d’une session à l’autre.
Pour résumer, si vous commencez à enregistrer, appuyez une fois sur la fonction d’évaluation et arrêtez l’enregistrement, une certaine quantité d’ID apparaissent dans vos diagnostics. Mais puisque vous n’avez effectué qu’une seule action, ils ont tous la valeur 1.1, 1.2, 1.3, et ainsi de suite.
La combinaison de l’ID d’activité (activityId) et de l’ID d’évaluation (evaluationId), séparés par le point, fournit un identificateur unique pour une évaluation d’une session d’enregistrement spécifique.
Nom de la requête dans le volet gauche de l’Éditeur Power Query.
Nom de l’étape dans le volet droit de l’Éditeur Power Query. Les éléments tels que les listes déroulantes de filtre sont généralement associés à l’étape sur laquelle vous filtrez, même si vous n’actualisez pas l’étape.
Catégorie de l’opération.
Ces données vous indiquent le type de source de données auquel vous accédez, comme SQL ou Oracle.
L’opération en cours d’exécution. Cette opération peut inclure le travail de l’évaluateur, l’ouverture de connexions, l’envoi de requêtes à la source de données, et bien plus encore.
Heure à laquelle l’opération a démarré.
Heure à laquelle l’opération s’est terminée.
La colonne Durée exclusive d’un événement correspond à la durée pendant laquelle l’événement a été actif. Cela diffère de la valeur « durée » qui résulte de la soustraction de la valeur de la colonne Heure de début de la valeur de la colonne Heure de fin d’un événement. Cette valeur « durée » représente la durée totale qui s’est écoulée entre le début d’un événement et le moment où il s’est terminé, ce qui peut inclure les heures pendant lesquelles l’événement était dans un état suspendu ou inactif et où un autre événement consommait des ressources.
La somme des pourcentages de durée exclusive approche 100 % dans une évaluation donnée, telle que représentée par la colonne ID. Par exemple, si vous filtrez sur des lignes avec l’ID 1.x, les pourcentages de durée exclusive totalisent environ 100 %. Ce n’est pas le cas si vous additionnez les valeurs de pourcentage de durée exclusive de toutes les lignes d’une table de diagnostic donnée.
Durée absolue, plutôt que %, de durée exclusive. La durée totale (c’est-à-dire la durée exclusive + le temps d’inactivité de l’événement) d’une évaluation peut être calculée de l’une des deux manières suivantes :
Recherchez l’opération appelée « Évaluation ». La différence entre l’heure de fin et l’heure de début donne la durée totale d’un événement.
Soustrayez l’heure de début minimale de toutes les opérations d’un événement de l’heure de fin maximale. Dans les cas où les informations collectées pour un événement ne comptent pas pour la durée totale, une opération appelée « Écarts de trace » est générée pour tenir compte de cet intervalle de temps.
Ressource à laquelle vous accédez pour obtenir des données. Le format exact de cette ressource dépend de la source de données.
Power Query fait quelque chose appelé pliage, qui consiste à exécuter autant de parties de la requête contre la source de données back-end que possible. En mode DirectQuery (sur Power Query), si cette fonctionnalité est activée, seules les transformations pliables s’exécutent. En mode d’importation, les transformations non pliables sont exécutées localement.
La colonne Requête de source de données vous permet de voir la requête ou la requête/réponse HTTP envoyée par rapport à la source de données back-end. Quand vous créez votre requête dans l’éditeur, de nombreuses requêtes de source de données sont émises. Certaines de ces requêtes sont la requête de source de données finale réelle pour afficher l’aperçu. Mais d’autres peuvent être destinées au profilage des données, aux listes déroulantes des filtres, aux informations sur les jointures, à la récupération des métadonnées pour les schémas et à un certain nombre d’autres requêtes de petite taille.
En général, vous ne devez pas être préoccupé par le nombre de requêtes de source de données émises, sauf si des raisons spécifiques le justifient. Au lieu de cela, vous devez vous concentrer sur la récupération du contenu approprié. Cette colonne peut également aider à déterminer si l’évaluation Power Query a été entièrement pliée.
Beaucoup d’informations sont récupérées par nos connecteurs. La plupart d’entre elles sont éparses et ne s’intègrent pas bien à une hiérarchie de colonnes standard. Ces informations sont placées dans un enregistrement dans la colonne d’informations supplémentaires. Les informations journalisées à partir de connecteurs personnalisés s’affichent également ici.
Nombre de lignes retournées par une requête de source de données. Ce paramètre n’est pas activé sur tous les connecteurs.
Longueur de contenu retournée par les requêtes HTTP, tel que couramment défini. Ce schéma n’est pas activé dans tous les connecteurs et n’est pas précis pour les connecteurs qui récupèrent les requêtes en blocs.
Valeur booléenne qui indique s’il s’agit d’une requête créée par l’utilisateur et présente dans le volet gauche ou si elle a été générée par une autre action utilisateur. D’autres actions utilisateur peuvent inclure la sélection de filtre ou l’utilisation du navigateur dans l’expérience d’obtention des données.
Le chemin représente l’itinéraire relatif de l’opération quand elle est affichée dans le cadre d’une arborescence d’intervalles pour toutes les opérations au sein d’une seule évaluation. Au sommet (racine) de l’arborescence, il existe une seule opération appelée Évaluation avec le chemin « 0 ». L’heure de début de cette évaluation correspond au début de cette évaluation dans son ensemble. L’heure de fin de cette évaluation indique quand l’évaluation complète a terminé. Cette opération de niveau supérieur a une durée exclusive de 0, car son seul objectif est de servir de racine de l’arborescence.
Les opérations supplémentaires démarrent au niveau de la racine. Par exemple, une opération peut avoir « 0/1/5 » comme chemin. Ce chemin se comprend comme suit :
- 0 : racine de l’arborescence
- 1 : parent de l’opération actuelle
- 5 : index de l’opération actuelle
L’opération « 0/1/5 » peut avoir un nœud enfant ; dans ce cas, le chemin a la forme « 0/1/5/8 », 8 représentant l’index de l’enfant.
La combinaison de deux opérations (ou plus) ne se produit pas si elle entraîne une perte de détails. Le regroupement est conçu pour rapprocher les « commandes » exécutées pendant l’évaluation. Dans la vue détaillée, plusieurs opérations partagent un ID de groupe correspondant aux groupes agrégés dans la vue résumée.
Comme pour la plupart des colonnes, l’ID de groupe est uniquement pertinent dans une évaluation spécifique, tel que filtré par la colonne ID.
Identique à l’ID des autres résultats des diagnostics de requête. La partie entière représente un ID d’activité unique, tandis que la partie fractionnaire représente une seule évaluation.
Correspond à la requête/étape utilisée comme partition de pare-feu.
Catégorisation qui explique pourquoi cette partition doit être évaluée séparément, y compris les détails sur le niveau de confidentialité de la partition.
Liste des chemins de toutes les ressources consultées par cette partition ; identifie en général une source de données de manière unique.
Liste des clés de partition dont dépend la partition actuelle (cette liste peut être utilisée pour générer un graphique).
Expression qui est évaluée en plus de l’étape ou requête de la partition. Dans plusieurs cas, elle coïncide avec la requête ou l’étape.
Heure de démarrage de l’évaluation pour cette partition.
Heure de fin de l’évaluation pour cette partition.
Valeur dérivée de l’heure de fin moins l’heure de début.
Si les partitions sont supposées s’exécuter dans un thread unique, la durée exclusive est la durée « réelle » qui peut être attribuée à cette partition.
Durée exclusive en pourcentage.
Cette colonne s’affiche uniquement quand les diagnostics de requête « agrégés » ou « détaillés » sont également capturés, ce qui permet à l’utilisateur d’établir une correspondance entre les deux sorties de diagnostic.
Quand vous exécutez des compteurs de performances, chaque demi-seconde Power Query prend un instantané de l’utilisation des ressources. Cet instantané n’est pas utile pour les requêtes très rapides, mais peut l’être pour les requêtes qui utilisent beaucoup plus de ressources.
Pourcentage de temps passé par les processeurs sur la requête. Ce pourcentage peut atteindre plus de 100 % s’il existe plusieurs processeurs.
Durée totale que passe le processeur sur la requête.
Débit des données reçues à partir de la source de données, exprimé en octets par seconde.
Quantité de mémoire virtuelle réservée par l’évaluation.
Quantité de mémoire réservée par l’évaluation.