Résoudre les problèmes de performances
Les organisations doivent de temps en temps résoudre des problèmes de performances lors de l’exécution de rapports. Power BI fournit l’outil Analyseur de performances pour vous aider à résoudre les problèmes et à rationaliser le processus.
Imaginons que vous deviez créer des rapports pour l’équipe Ventes de votre organisation. Vous avez importé vos données, qui se trouvent dans plusieurs tables de la base de données SQL de l’équipe Ventes, en créant une connexion de données à la base de données via DirectQuery. Quand vous créez des visuels et des filtres préliminaires, vous remarquez que l’interrogation de certaines tables est plus rapide que pour d’autres, et que certains filtres prennent plus de temps à être traités que d’autres filtres.
Optimiser les performances dans Power Query
Les performances de Power Query dépendent des performances au niveau de la source de données. Power Query offre une grande variété de sources de données et de techniques d’optimisation des performances pour chacune des ces sources. Par exemple, si vous extrayez des données d’un serveur Microsoft SQL Server, vous devez suivre les instructions d’optimisation des performances pour le produit. Les bonnes techniques d’optimisation des performances de SQL Server incluent la création d’index, les mises à niveau du matériel, l’optimisation des plans d’exécution et la compression des données. Ces sujets n’entrent pas dans le cadre de cet article et sont abordés seulement à titre d’exemple pour vous permettre de vous familiariser avec votre source de données, et de tirer parti des avantages de l’utilisation de Power BI et de Power Query.
Power Query tire parti des bonnes performances de la source de données via une technique appelée « Query Folding ».
Query Folding
Le Query Folding dans l’éditeur Power Query vous aide à accroître les performances de vos rapports Power BI. Le Query Folding est le processus par lequel les transformations et les modifications que vous apportez dans l’éditeur Power Query sont suivies simultanément en tant que requêtes natives, ou en tant que simples instructions SQL Select, pendant que vous effectuez activement des transformations. La raison de l’implémentation de ce processus est de garantir que ces transformations peuvent avoir lieu dans le serveur de la source de données d’origine et ne pas surcharger les ressources informatiques de Power BI.
Vous pouvez utiliser Power Query pour charger des données dans Power BI. Ensuite, vous pouvez utiliser l’éditeur Power Query pour transformer vos données, par exemple renommer ou supprimer des colonnes, ou ajouter, décomposer, filtrer et regrouper vos données.
Imaginez un scénario où vous avez renommé quelques colonnes dans les données des ventes, et où vous avez fusionné une colonne Ville et Département selon un format « Ville Département ». Pendant cette opération, la fonctionnalité Query Folding effectue le suivi de ces modifications dans les requêtes natives. Ensuite, quand vous chargez vos données, les transformations s’effectuent indépendamment dans la source d’origine, ce qui garantit l’optimisation des performances dans Power BI.
Les avantages du Query Folding sont les suivants :
Plus d’efficacité dans les actualisations des données et les actualisations incrémentielles. Quand vous importez des tables de données en utilisant le Query Folding, Power BI est plus à même d’allouer des ressources et d’actualiser les données plus rapidement, car Power BI n’a pas besoin d’exécuter chaque transformation localement.
Compatibilité automatique avec les modes de stockage DirectQuery et Double. Toutes les sources de données en mode de stockage DirectQuery et Double doivent avoir les capacités de traitement du serveur back-end pour créer une connexion directe, ce qui signifie que Query Folding est une fonctionnalité automatique que vous pouvez utiliser. Si toutes les transformations peuvent être réduites à une seule instruction Select, le Query Folding peut être effectué.
Le scénario suivant montre le Query Folding en action. Dans ce scénario, vous appliquez un ensemble de requêtes à plusieurs tables. Une fois que vous avez ajouté une nouvelle source de données avec Power Query et que vous êtes dirigé vers l’éditeur Power Query, vous accédez au volet Paramètres de la requête, où vous pouvez cliquer avec le bouton droit sur la dernière étape appliquée, comme illustré dans la figure suivante.
Si l’option Afficher la requête native n’est pas disponible (non affichée en gras), le Query Folding n’est pas possible pour cette étape. Vous devez alors revenir en arrière dans Étapes appliquées jusqu’à l’étape où Afficher la requête native est disponible (affichée en gras). Ce processus va révéler la requête native utilisée pour transformer le modèle sémantique.
Les requêtes natives ne sont pas possibles pour les transformations suivantes :
- Ajout d’une colonne d’index
- Fusion et ajout de colonnes de différentes tables avec deux sources différentes
- Modification du type de données d’une colonne
Une bonne règle à mémoriser est que si vous pouvez traduire une transformation en une instruction SQL Select qui comprend des opérateurs et des clauses comme GROUP BY, SORT BY, WHERE, UNION ALL et JOIN, vous pouvez utiliser le Query Folding.
Si le Query Folding est une option permettant d’optimiser les performances lors de la récupération, de l’importation et de la préparation des données, une autre option est d’effectuer des diagnostics de requête.
Diagnostics de requête
Un autre outil que vous pouvez utiliser pour étudier les performances des requêtes est Diagnostics de requête. Vous pouvez déterminer les goulots d’étranglement qui se produisent lors du chargement et de la transformation de vos données, lors de l’actualisation de vos données dans Power Query, lors de l’exécution des instructions SQL dans l’éditeur de requête, etc.
Pour accéder aux diagnostics de requête dans l’éditeur Power Query, accédez à Outils dans le ruban Accueil. Quand vous êtes prêt à commencer la transformation de vos données ou à effectuer d’autres modifications dans l’éditeur Power Query, sélectionnez Démarrer les diagnostics dans la section Diagnostics de la session. Quand vous avez terminé, veillez à sélectionner Arrêter les diagnostics.
La sélection de Diagnostiquer l’étape vous montre la durée nécessaire à l’exécution de cette étape, comme illustré dans l’image suivante. Cette sélection peut vous indiquer si une étape prend plus de temps que d’autres, ce qui sert ensuite de point de départ pour un examen plus approfondi.
Cet outil est pratique quand vous voulez analyser les niveaux de performance du côté Power Query pour des tâches comme le chargement de modèles sémantiques, l’exécution des actualisations de données ou l’exécution d’autres tâches de transformation.
Autres techniques pour optimiser les performances
Voici d’autres moyens pour optimiser les performances des requêtes dans Power BI :
Traiter autant de données que possible dans la source de données d’origine. Power Query et l’éditeur Power Query vous permettent de traiter les données ; cependant, la puissance de traitement nécessaire pour effectuer cette tâche peut réduire les performances pour d’autres aspects de vos rapports. En général, une bonne pratique est d’effectuer autant que possible les traitements dans la source de données native.
Utiliser des requêtes SQL natives. Quand vous utilisez DirectQuery pour des bases de données SQL, comme dans le cas de notre scénario, veillez à ne pas tirer des données de procédures stockées ou d’expressions de table communes.
Séparer la date et l’heure si elles sont stockées ensemble. Si vos tables ont des colonnes qui combinent la date et l’heure, veillez à les séparer en colonnes distinctes avant de les importer dans Power BI. Cette approche augmente les capacités de compression.
Pour plus d’informations, reportez-vous à Aide sur le Query Folding et à Query Folding.