Partager via


Recommandations pour optimiser les performances des données

S’applique à cette Power Platform recommandation de la liste de contrôle pour une efficacité des performances bien architecturée :

PE:08 Optimisez les performances des données. Optimisez les magasins de données pour leur utilisation prévue et réelle dans la charge de travail.

Ce guide décrit les recommandations pour optimiser les performances des données. L’optimisation des performances des données consiste à affiner l’efficacité avec laquelle la charge de travail traite et stocke les données. Chaque opération, transaction ou calcul de charge de travail repose généralement sur la récupération, le traitement et le stockage rapides et précis des données. Lorsque les performances des données sont optimisées, la charge de travail s’exécute correctement. Les performances des données compromises créent un effet domino de mauvaise efficacité des performances. L’incapacité à optimiser les performances des données entraîne des retards de réponse, une latence accrue et une évolutivité réduite. Cela met en péril l’efficacité de l’ensemble de la charge de travail.

Définitions

Terme Définition
Magasin de données Ressource qui stocke des données telles qu’une base de données, un magasin d’objets ou un partage de fichiers.
Index Une structure de base de données qui fournit un accès rapide aux éléments.
Traitement analytique en ligne (OLAP) Une technologie qui organise de grandes bases de données commerciales, prend en charge des analyses complexes et effectue des requêtes analytiques complexes sans affecter négativement les systèmes transactionnels.
Traitement des transactions en ligne (OLTP) Technologie qui enregistre les interactions commerciales au fur et à mesure qu’elles se produisent dans les opérations quotidiennes d’une organisation.
Partitionnement Processus de division physique des données dans des magasins de données distincts.
Réglage des requêtes Un processus qui optimise la vitesse d’une requête de base de données.

Stratégies de conception clés

Pour optimiser l’utilisation des données, assurez-vous que les magasins de données sont optimisés pour leur utilisation prévue et pour leur utilisation réelle dans une charge de travail. Une utilisation optimisée des données peut améliorer les performances des requêtes, réduire la consommation de ressources et améliorer l’efficacité globale du système. Réfléchissez aux stratégies suivantes :

  • Données de profil. Comprenez vos données et assurez-vous que votre modèle de données est bien adapté à votre charge de travail. Tenez compte de facteurs tels que la normalisation des données et les techniques de partitionnement. Pour une récupération efficace des données, assurez-vous de sélectionner les types de données appropriés et de définir Relations entre les tables.

  • Optimisez les performances des requêtes. Analysez et optimisez les requêtes exécutées dans la charge de travail. Utilisez des techniques telles que l’optimisation des requêtes et la mise en cache. Utilisez des vues côté serveur pour préfiltrer les données. Pour identifier les goulots d’étranglement, utilisez des outils de surveillance des performances, puis apportez les améliorations nécessaires.

  • Surveillez et réglez régulièrement le système. Surveillez en permanence les performances de votre charge de travail et itérez sur la configuration du stockage de données et les optimisations des requêtes. Sur la base des meilleures pratiques d’optimisation des performances, analysez les métriques du système, identifiez les domaines à améliorer et mettez en œuvre les changements. À mesure que les données augmentent, vous devrez peut-être mettre à jour vos requêtes pour rester performant.

Données du profil

Le profilage des données consiste à examiner les données d’une source et à recueillir des informations à leur sujet. L’objectif est de comprendre la qualité, la structure et les caractéristiques des données sur la charge de travail. Ce processus permet d’identifier des problèmes tels que des valeurs manquantes, des doublons, des formats incohérents et d’autres anomalies.

Pour un profilage de données efficace, envisagez les stratégies suivantes :

  • Comprendre la structure des données. Examinez la structure de vos données, y compris les tableaux, les colonnes et Relations. Déterminez les types de données, les longueurs et les contraintes appliquées à chaque colonne. L’évaluation de la structure des données vous aide à comprendre comment les données sont organisées et comment elles sont liées à d’autres éléments de données.

  • Analysez le volume de données. Évaluez le volume de vos données pour comprendre la taille globale et les modèles de croissance. Déterminez le nombre d’enregistrements ou de documents et la taille des tables ou collections individuelles. Ces informations vous aident à estimer les besoins en stockage et à identifier les problèmes d’évolutivité.

  • Identifiez les données Relations. Explorez le Relations entre les éléments de données. Comprenez comment les données sont connectées afin de pouvoir déterminer comment les modifications apportées à une table ou un document peuvent affecter les données associées.

  • Évaluez la qualité des données. Évaluez la qualité de vos données en examinant des facteurs tels que l’exhaustivité, l’exactitude, la cohérence et le caractère unique. Identifiez les anomalies de données, les valeurs manquantes ou les enregistrements en double susceptibles d’affecter l’intégrité des données et les performances des requêtes. Cette étape vous aide à identifier les domaines de nettoyage et d’amélioration des données.

  • Capturez la distribution des données. Analysez la distribution des valeurs dans chaque colonne pour déterminer les modèles de données. Identifiez les valeurs fréquentes et rares, les valeurs aberrantes et les biais de données. Pour optimiser les performances des requêtes, analysez si des clés alternatives seraient appropriées pour améliorer les performances.

Surveiller les performances des données

La surveillance des performances des données consiste à suivre de manière cohérente l’efficacité des magasins de données. Cela implique de collecter et d’analyser des mesures de performances spécifiques aux opérations de données, à l’aide d’outils adaptés aux solutions de surveillance au niveau du système, spécifiques à la base de données ou tierces. Une surveillance efficace des performances des données vous permet d’identifier et d’atténuer de manière proactive les goulots d’étranglement potentiels, garantissant ainsi l’efficacité des processus et des tâches liés aux données.

Pour surveiller les performances des données, envisagez les stratégies suivantes :

  • Collectez des métriques spécifiques aux données. Rassemblez des indicateurs clés directement liés aux performances des données. Ces métriques incluent les temps de réponse aux requêtes et le débit de données.

  • Configurezdes alertes de données. Configurez des alertes spécifiquement pour les métriques de données. Utilisez des seuils ou des anomalies prédéfinis dans ces métriques pour déclencher des alertes. Les alertes vous permettent de recevoir des notifications lorsque les mesures de performances dépassent les plages acceptables ou affichent un comportement anormal ; par exemple, si une requête de base de données prend plus de temps que prévu ou si le débit de données diminue considérablement. Vous pouvez configurer ces alertes à l’aide d’outils de surveillance spécialisés ou de scripts personnalisés.

  • Diagnostiquer les problèmes de performances des données. Examinez régulièrement les mesures de données collectées pour identifier les goulots d’étranglement potentiels des performances ou la dégradation des opérations de données. Les outils de visualisation ou les tableaux de bord peuvent s’avérer inestimables dans ce processus, aidant à mettre en évidence les tendances, les goulots d’étranglement et les valeurs aberrantes en matière de performances des données. Une fois identifiés, étudiez les causes profondes de ces problèmes et planifiez les mesures correctives appropriées.

Données de partition

Le partitionnement implique de diviser de grands ensembles de données ou des charges de travail volumineuses en sous-ensembles plus petits et gérables. Le partitionnement améliore l’efficacité des performances des données en répartissant la charge de travail et en améliorant le traitement parallèle. Il garantit également un accès aux données plus efficace en fonction de besoins spécifiques et de modèles de requêtes. Vous pouvez partitionner les données verticalement ou horizontalement (également appelé partitionnement). Par exemple, si vous utilisez des tables élastiques, réfléchissez à la clé de partitionnement. Dataverse

Stratégie Définition Exemple Cas d’utilisation
Cloison verticale Divisez une table en tables plus petites en sélectionnant des colonnes ou des champs spécifiques pour chaque partition. Chaque partition représente un sous-ensemble des données complètes. Si vous avez un tableau avec les colonnes A, B, C et D, vous pouvez créer un tableau avec les colonnes A et B et un autre avec les colonnes C et D. - Une table contient de nombreuses colonnes, mais les requêtes n’accèdent pas à toutes les colonnes ensemble.
- Certaines colonnes sont plus grandes que d’autres et les séparer peut améliorer les performances d’E/S.
- Différentes parties de données ont des modèles d’accès différents.
Cloisonnement horizontal Divisez les données en fonction de lignes ou de plages de valeurs (également appelée partitionnement). Chaque partition contient un sous-ensemble de lignes présentant des caractéristiques similaires. Si vous disposez d’une table contenant les lignes 1 à 1 000, vous pouvez créer une partition avec les lignes 1 à 500 et une autre avec les lignes 501 à 1 000. - Un jeu de données est trop grand pour un seul emplacement ou serveur.
- Les données sont accessibles en fonction de plages ou de filtres spécifiques.
- Nécessité de répartir la charge de travail sur des nœuds physiques ou des serveurs pour des performances améliorées.

Pour partitionner vos données, suivez les étapes suivantes :

  • Analyser les données et les requêtes. Analysez les modèles de données et de requêtes pour identifier les stratégies de partitionnement ou de partitionnement appropriées. Comprenez la nature des données, les modèles d’accès et les exigences de distribution.

  • Déterminez une clé. Choisissez une clé de partitionnement ou de partitionnement pour distribuer les données sur des partitions ou des partitions. Sélectionnez soigneusement la clé en fonction des caractéristiques des données et des exigences de requête.

  • Déterminez la logique. Déterminez une logique de partitionnement ou de partitionnement en fonction de la clé choisie. Pensez à diviser les données en plages, à appliquer des algorithmes de hachage ou à utiliser d’autres techniques de partitionnement.

Optimiser les requêtes

L’optimisation des requêtes affine les requêtes pour réduire les données qualifiées et les données renvoyées. Ces ajustements augmentent l’efficacité et la rapidité de la récupération des données. En conséquence, la base de données a une charge de travail plus légère, les ressources fonctionnent plus efficacement et les utilisateurs bénéficient d’interactions plus fluides.

Pour optimiser les requêtes de base de données, envisagez les stratégies suivantes :

  • Réécrivez les requêtes. Examinez et analysez les requêtes complexes pour identifier les opportunités de les réécrire. Envisagez de restructurer la logique des requêtes, d’éliminer les opérations redondantes ou de simplifier la syntaxe des requêtes.

  • Évitez le problème de requête N+1. Minimisez le nombre d’allers-retours vers la base de données en utilisant des jointures et la récupération par lots pour récupérer efficacement les données associées.

  • Réorganiser les jointures. Évaluez et envisagez de réorganiser l’ordre de jointure pour minimiser le nombre de lignes dans chaque opération de jointure. L’ordre dans lequel vous joignez les tables peut affecter les performances des requêtes.

  • Requêtes en cache. Stockez les résultats des requêtes fréquemment exécutées pour une réutilisation facile. La mise en cache des requêtes élimine le besoin d’exécuter à plusieurs reprises la même requête et réduit la surcharge de traitement des requêtes.

  • Surveillez et réglez. Surveillez les mesures de performances des requêtes, telles que le temps d’exécution, l’utilisation des ressources et le débit des requêtes. Utilisez des outils de profilage de base de données et des fonctionnalités de surveillance pour identifier les requêtes peu performantes. Utilisez ces informations pour optimiser les performances des requêtes.

Archiver et purger les données

L’archivage et la purge sont des stratégies qui rationalisent le stockage des données. L’archivage déplace les données plus anciennes et moins fréquemment consultées vers un stockage plus rentable. La purge des données supprime définitivement les données redondantes. Les deux méthodes contribuent à l’efficacité des performances en réduisant le volume de données, en augmentant la vitesse d’accès aux données et en réduisant les temps de sauvegarde et de restauration.

  • Réduction du volume de données : moins de données signifie des temps de traitement plus rapides, garantissant des réponses rapides aux demandes des utilisateurs.
  • Augmentation de la vitesse d’accès aux données : un jeu de données réduit permet des requêtes et une récupération des données plus rapides, optimisant ainsi la réactivité du système.
  • Réduction des temps de sauvegarde et de restauration : des ensembles de données plus petits accélèrent les processus de sauvegarde et de restauration, minimisant les temps d’arrêt et garantissant des performances constantes.

L’archivage et la purge jouent un rôle déterminant dans le maintien d’une efficacité maximale dans les systèmes basés sur les données.

Optimiser la charge de stockage

Optimiser la charge de stockage signifie rationaliser les requêtes adressées au système de stockage. Il permet d’éliminer les requêtes inutiles, d’améliorer la récupération des données et d’éviter de surcharger le système de stockage. L’optimisation de la charge de stockage garantit que le système de stockage reste réactif aux demandes légitimes et maintient des performances optimales. Mettre en œuvre des stratégies pour réduire le fardeau de traitement sur le magasin de données. Pour optimiser la charge de magasin de données, envisagez les stratégies qui suivent.

Utiliser la mise en cache

La mise en cache stocke les données fréquemment consultées dans une zone de stockage à accès rapide, ce qui rend la récupération des données plus rapide que leur extraction à partir de la source principale. Cette technique améliore les performances des données en réduisant les temps d’accès et en évitant les récupérations de données répétitives. La mise en cache améliore les vitesses de lecture et les temps de réponse des utilisateurs, en particulier pour les données fréquemment consultées. Cette méthode est plus efficace sur les données statiques ou les données qui changent rarement.

Pour garantir une efficacité de mise en cache optimale, tenez compte de facteurs tels que les politiques d’expiration, les stratégies d’expulsion et la gestion de la taille du cache. Ajustez les paramètres, tels que la durée de vie (TTL), pour des performances optimales. Pour utiliser un cache afin d’optimiser la charge de stockage, envisagez les stratégies suivantes :

  • Mise en cache en mémoire : effectuez une mise en cache en mémoire pour stocker les données fréquemment consultées en mémoire pour une récupération rapide. Vous pouvez utiliser cette technique pour les données d’application dont le calcul ou la récupération à partir d’une base de données est coûteux. La mise en cache en mémoire est utile pour les données que vous lisez fréquemment mais qui ne changent pas fréquemment. Par exemple, vous pouvez utiliser des variables dans des flux cloud ou des collections dans des applications canevas pour mettre les données en cache.

  • Mise en cache des requêtes de base de données : utilisez cette technique pour mettre en cache les résultats des requêtes de base de données afin d’éviter d’exécuter la même requête plusieurs fois. La mise en cache des requêtes de base de données est utile pour les requêtes de base de données complexes et chronophages. Lorsque vous mettez en cache les résultats d’une requête, les requêtes suivantes pour la même requête sont renvoyées rapidement. Pensez également à utiliser des vues côté serveur lorsque cela est possible pour préfiltrer les données afin d’affiner les données pertinentes pour votre requête.

  • Mise en cache du réseau de diffusion de contenu : utilisez cette technique pour mettre en cache le contenu Web sur des serveurs de réseau distribué afin de réduire la latence et d’améliorer la diffusion du contenu. La mise en cache du réseau de diffusion de contenu est efficace pour le contenu statique, comme les images, CSS fichiers et les fichiers JavaScript. Les réseaux de diffusion de contenu stockent des copies de contenu dans plusieurs emplacements dans le monde, afin que les utilisateurs puissent accéder au contenu à partir d’un serveur géographiquement proche d’eux.

Optimiser les mises à jour des données

L’optimisation des mises à jour de données implique d’évaluer les mises à jour de données effectuées pour garantir leur performance. Les mises à jour peuvent affecter les performances plus que d’autres opérations, car elles peuvent déclencher un travail inutile et provoquer des conflits de verrouillage.

Pour évaluer comment optimiser les mises à jour des données, considérez :

  • Modifications des données. Optimisez l’automatisation pour utiliser des pré-images des données ou des filtres afin de minimiser le travail lorsqu’aucun changement réel n’a eu lieu. Évitez de déclencher l’automatisation pour des données non modifiées.

  • Automatisation. Évaluez quand et comment les mises à jour sont déclenchées en fonction des modifications des données et optimisez les déclencheurs pour inclure un filtre. Par exemple, pour déclencher l’automatisation uniquement lorsqu’un champ spécifique du source de données est modifié. Évaluez les mises à jour qui déclenchent progressivement des automatisations à plusieurs reprises. Réfléchissez plutôt à la possibilité de créer une opération personnalisée pour gérer tous les traitements. Par exemple, si une commande est expédiée et que la date d’expédition et le numéro de suivi sont mis à jour séparément, ils peuvent tous deux être mis à jour en même temps dans une opération personnalisée "ShipOrder".

  • Impasses. Évaluez les opérations de mise à jour lentes qui pourraient causer des problèmes en raison de plusieurs flux mettant à jour les mêmes données dans des séquences différentes. Cette inefficacité peut conduire à des conflits de verrouillage, voire à des blocages potentiels, entraînant des retouches inutiles. Mettez à jour les différentes ressources dans la même séquence pour minimiser les conflits.

  • Mises à jour groupées. Si vous exécutez des opérations sur plusieurs lignes d’une table, envisagez d’utiliser opérations en vrac.

Optimiser le mouvement et le traitement des données

L’optimisation du mouvement et du traitement des données implique l’amélioration de l’efficacité et des performances des opérations liées à l’extraction, à la transformation, au chargement et au traitement des données. Tenez compte des aspects clés suivants pour optimiser le mouvement et le traitement des données :

  • Optimisation de l’extraction, de la transformation et du chargement (ETL) : Optimisez les processus ETL pour minimiser le temps de traitement. Vous pouvez rationaliser le processus d’extraction, mettre en œuvre des algorithmes de transformation efficaces et optimiser le processus de chargement. Lorsque vous rendez chaque étape efficace, vous optimisez le flux de travail global.

  • Traitement parallèle : Utilisez des techniques de traitement parallèle pour améliorer les performances. Lorsque vous répartissez les tâches de traitement des données sur plusieurs threads ou nœuds, vous pouvez diviser et traiter la charge de travail simultanément, ce qui entraîne un traitement rapide.

  • Le traitement par lots : Regroupez les tâches similaires pour réduire les frais généraux causés par les opérations répétées. Traitez plusieurs tâches par lots pour réduire le temps de traitement global.

Conception pour la proximité des données

La proximité des données fait référence au placement stratégique des données plus près des utilisateurs ou des services qui y accèdent le plus fréquemment. La réduction de la distance physique ou logique entre les données et leurs utilisateurs garantit un accès plus rapide aux données et une meilleure réactivité. Pour optimiser la conception en fonction de la proximité, envisagez ces stratégies :

  • Évaluer les modèles d’accès aux données : évaluez les modèles d’accès de votre charge de travail et les données fréquemment consultées. Cette analyse peut aider à déterminer où placer les données pour en tirer le meilleur parti.

  • Choisissez des solutions prenant en charge la relocalisation des données : envisagez des solutions offrant une relocalisation dynamique des données en fonction de l’évolution des modèles d’accès, garantissant ainsi un positionnement optimal des données.

  • Choisissez des solutions prenant en charge la synchronisation des données : si vous servez une base d’utilisateurs distribuée, choisissez des solutions qui permettent la synchronisation des données entre les différentes régions, pour garantir que les réplicas de données sont disponibles à proximité des utilisateurs.

Compromis : si les données sous-jacentes changent fréquemment, mettez en œuvre un mécanisme d’invalidation du cache pour garantir que les données mises en cache restent à jour.

Facilitation de Power Platform

Surveiller les performances des données : pour surveiller les performances des données, envisagez d’utiliser Azure Monitor pour collecter et analyser les métriques d’infrastructure, les journaux et les données d’application. Vous pouvez intégrer Monitor à d’autres services comme Application Insights. Application Insights fournit une surveillance des performances des applications et prend en charge de nombreuses plates-formes.

Application Insights collecte des données d’utilisation et de performances. Vous pouvez utiliser Log Analytics pour corréler ces données avec les données de configuration et de performances sur les ressources Azure. Le Application Insights for Dataverse flux de données fournit actuellement des données de performances liées aux Dataverse appels entrants d’API, Dataverse appels d’exécution de plug-in et Dataverse Appels SDK.

Optimisez les modèles de données de requête dans les applications canevas : Suivez les conseils et suggestions documentés. Voir Modèles de données de requête optimisés dans Power Apps.

Optimisez la manière dont vous personnalisez, étendez ou intégrez Dataverse : Suivez les bonnes pratiques et les conseils documentés. Consultez les Bonnes pratiques et conseils d’utilisation Microsoft Dataverse.

Optimiser les requêtes de base de données et les performances des index : utilisez la fonctionnalité d’analyse des performances des requêtes d’Azure SQL Database pour optimiser les requêtes, les tables et les bases de données. Vous pouvez également utiliser cette fonctionnalité pour identifier et résoudre les problèmes de performances des requêtes.

Pour les bases de données relationnelles, suivez les consignes de conception d’index, consignes d’indexation SQL Server et Conseils sur l’index Azure Cosmos DB . Utilisez SQL Database pour effectuer un réglage automatique des requêtes afin d’améliorer leurs performances.

Pour les bases de données SQL, vous devez régulièrement réorganiser ou reconstruire les index. Identifiez les requêtes lentes et ajustez-les pour améliorer les performances. De nombreux moteurs de bases de données disposent de fonctionnalités de réglage des requêtes. Pour plus d’informations, consultez les bonnes pratiques en matière de performances des requêtes.

Azure Cosmos DB dispose d’une politique d’indexation par défaut qui indexe chaque propriété de chaque élément et applique des index de plage pour toute chaîne ou tout nombre. Cette stratégie vous offre des performances de requête efficaces et vous n’avez pas besoin de gérer les index à l’avance.

Optimiser la charge de stockage : de nombreux services de base de données Azure prennent en charge les réplicas en lecture. La disponibilité et la configuration des réplicas en lecture varient en fonction du service de base de données Azure. Reportez-vous à la documentation officielle de chaque service pour comprendre les détails et les options.

Voir aussi

Liste de contrôle pour l’efficacité des performances

Référez-vous à l’ensemble complet des recommandations.