Optimisation des performances dans SQL
Optimisation des performances SQLest un marathon et non un sprint. Empêcher la dégradation des performances se résume à un réglage cohérent à long terme. Dès que les performances commencent à prendre du retard, vos utilisateurs le remarqueront.
L'optimisation des performances vous aide à éviter la tragédie des clients insatisfaits et à offrir une meilleure expérience utilisateur. Dans cet article, nous allons voir ce que Optimisation des performances SQL est, et certains domaines que vous devez connaître lorsque vous essayez d’améliorer les performances de votre serveur, notamment :
- Utiliser un outil de surveillance SQL pour surveiller les performances
- Améliorer les index
- Blocages de SQL Server
- Réduire le temps d'exécution des requêtes
Qu’est-ce que le réglage des performances SQL ?
Le réglage des performances SQL est le processus deaméliorer les performances des instructions SQL. Vous voulez vous assurer que les instructions SQL s'exécutent aussi rapidement que possible. Les instructions rapides et efficaces consomment moins de ressources matérielles et fonctionnent mieux. En revanche, une instruction inefficace non optimisée prendra plus de temps à compléter et consommera plus de puissance de calcul.
Une utilisation inefficace de la puissance de calcul signifie que la base de données mettra plus de temps à répondre aux demandes des utilisateurs. En pratique, cela signifie que chaque fois qu'un utilisateur interagit avec l'interface, le temps de réponse sera plus long à mesure que la base de données essaiera de trouver les informations nécessaires. Les administrateurs réseau et les développeurs utilisent régulièrement le réglage des performances pour améliorer les performances des bases de données et maintenir une expérience utilisateur premium.
Quelles sont les causes des mauvaises performances de SQL Server ?
Il existe de nombreuses raisons pour lesquelles un serveur SQL peut être lent. Des facteurs allant des requêtes lentes aux goulots d'étranglement des performances, aux conflits de ressources virtualisées et aux limitations matérielles contribuent tous à de mauvaises performances. Cependant, trouver la cause première d’un serveur lent est complexe en raison de la longue liste de coupables potentiels.
La plupart du temps, les mauvaises performances sont liées à des requêtes mal écrites et à une indexation rendant l'utilisation inefficace des ressources plutôt qu'à des limitations matérielles. Malheureusement, il peut être difficile de déterminer la cause du problème sans un investissement important de temps et d’efforts.
Pour accélérer le processus de diagnostic de découverte des problèmes de performances de SQL, il est conseillé d'utiliser un outil de surveillance des performances. Un moniteur de base de données vous permettra d’examiner plus en profondeur la cause des mauvaises performances et d’offrir une meilleure expérience utilisateur final à vos clients.
Utilisez un moniteur de performances SQL pour surveiller les performances et identifier les goulots d'étranglement SQL
Analyseur de performances de base de données SolarWinds (ESSAI GRATUIT)
Les outils de surveillance de bases de données sont essentiels pour gérer les performances SQL car ils vous permettent d'identifier la cause première de l'inefficacité. Des outils de surveillance commeAnalyseur de performances de base de données SolarWindssont idéaux pour identifier les problèmes courants tels que les goulots d’étranglement SQL et mettre en évidence la cause du problème.
SolarWinds Database Performance Analyser Commencez un essai GRATUIT de 14 jours
Les goulots d'étranglement SQL sont l'un des problèmes les plus répandus auxquels vous serez confronté lors de la gestion de bases de données. Ce qui rend les goulots d’étranglement délicats, c’est qu’ils peuvent se manifester de différentes manières. Il existe quatre types de goulots d'étranglement qui peuvent affecter les performances d'un serveur :mémoire,disque,CPU, et leréseaului-même.
La gestion des goulots d’étranglement devient encore plus difficile si plusieurs goulots d’étranglement sont actifs en même temps. Par exemple, si vous disposez de ressources disque et de mémoire limitées, vous constaterez probablement également une utilisation plus élevée du processeur.
SolarWinds Database Performance Analyzer vous aide à identifier la cause première des goulots d’étranglement actifs. La plateformeAnalyseur de performances SQLutilise des données surtypes d'attente,Instructions SQL,activité, et bien plus encore, pour surveiller les performances en temps réel. Vous pouvez également afficher les types/événements d’attente à l’origine des goulots d’étranglement.
Pour le réglage général des performances, vous disposez également de diverses instructions pour vous aider à affiner les instructions. Par exemple, il y a un «Instructions SQL les moins performantesvoir. En disposant de ces informations, vous pouvez commencer à apporter des changements tangibles à votre stratégie d'optimisation des performances et à améliorer l'expérience de vos utilisateurs finaux.
Optimisation pour réduire le temps d'exécution des requêtes
Comme discuté ci-dessus,durée d'exécution de la requêteest une considération importante lorsque l'on tente de maintenir les performances SQL : plus une requête s'exécute longtemps, plus le matériel doit utiliser de ressources pour traiter la requête. La réduction du temps d'exécution des requêtes vous permettra d'exploiter davantage votre matériel et de prendre en charge de meilleures performances de base de données.
Il existe trois facteurs principaux qui augmentent la durée d'exécution des requêtes :tableautaille,rejoint, etagrégations. Si une requête doit interagir avec une table comportant trop de lignes, le logiciel devra travailler plus dur pour traiter cette requête. De même, si votre requêterejointplusieurs tables ensemble, cela affectera les performances. De même, les requêtes qui utilisent des agrégations pour générer un résultat nécessitent également plus de ressources.
Il est important de noter que la durée d’exécution d’une requête peut également être augmentée si de nombreux autres utilisateurs exécutent des requêtes en même temps. Chaque requête consomme des ressources matérielles. Par conséquent, plus la base de données tente de traiter de requêtes, plus le temps d’exécution sera lent.
Si vous souhaitez améliorer les performances et réduire le temps d'exécution des requêtes, réduire la taille de la table est l'une des choses les plus simples que vous puissiez faire. De même, lorsque vous interrogez une période, gardez la fenêtre aussi étroite que possible. Par exemple, si vous devez mesurer les données d’une base de données sur une période donnée, optez pour une période brève, comme une période de 24 heures, afin que le matériel n’ait pas à traiter autant de données.
Une autre chose que vous pouvez faire est de mettre à niveau votre mémoire. Si vous ne disposez pas des ressources informatiques nécessaires pour gérer une base de données volumineuse, le réglage ne suffira pas à offrir de bonnes performances. La mise à niveau de la mémoire permet de garantir que vous disposez de plus de ressources.
Article similaire: Meilleurs générateurs de requêtes SQL
Blocages de SQL Server
Les blocages sont un autre problème de performances que les administrateurs réseau et les développeurs doivent gérer. Une impasse est l'endroit oùdeux processus sont en compétition pour l'accès à une ressource. Les deux processus se bloquent et aucun des deux ne peut accéder à la ressource. En d’autres termes, un blocage est une dépendance cyclique provoquée par le code de l’application.
Pour éliminer un blocage du serveur, l'administrateur doit mettre fin à l'un des processus. SQL Server a ungestionnaire de serruresqui recherche automatiquement les blocages toutes les cinq secondes.
Lorsque SQL Server détecte un blocage, il choisit une transaction à arrêter. En arrêtant l'une des transactions, le blocage est levé afin que l'autre processus puisse accéder à la ressource initialement bloquée.
SQL Server choisit quel processus est arrêté en fonction d'une priorité de blocage. La priorité du blocage peut être définie par l'utilisateur avec la commande suivante :
FIXER DEADLOCK_PRIORITY BAS ;
Il existe quatre niveaux de priorité ;FAIBLE,NORMALE,HAUT,<numérique> . LOW a une valeur de -5, NORMAL a une valeur de 0 et HIGH a une valeur de 5. Le
Le serveur SQL termine le processus avec le niveau de priorité de blocage le plus bas. Ainsi, si vous entrez la commande LOW pour attribuer une priorité faible à un processus et que l'autre processus a une priorité Normale ou ÉLEVÉE, le processus de priorité BASSE sera terminé.
Il est important de noter que la résolution des blocages va bien au-delà des sections prioritaires des blocages. Les blocages peuvent être un problème incroyablement complexe à résoudre (surtout si vous devez parcourir le code de l'application avec l'aide d'un développeur !).
Améliorer les index
Les index sont un outil utile à votre disposition pour augmenter l'efficacité des requêtes. Un index est une structure de données que vous pouvez utiliser pour extraire plus rapidement des informations de la base de données. Pour utiliser des index pour améliorer les performances, vous souhaitez : utiliser de nombreux index dans les tables, éviter les index fréquemment mis à jour et utiliserindex non clusteriséspour réduire le temps d'exécution des requêtes.
Pour vous aider dans le processus de conception de l'index, vous pouvez utiliserProfileur SQLpour identifier les requêtes avec des performances médiocres.Profileur SQLvous indiquera le nombre d'opérations de lecture et d'écriture nécessaires pour terminer une requête et le temps nécessaire à l'exécution de la requête. Chargez le profileur sur un ordinateur distant et recherchez les requêtes qui prennent beaucoup de temps à être exécutées. Ces requêtes seront celles que vous souhaitez modifier jusqu'à ce que le temps d'exécution diminue.
Alternativement, vous pouvez utiliser leAssistant de réglage de l'indexpour vous recommander des index à utiliser.Assistant de réglageest un assistant logiciel pour SQL qui vous fournit des recommandations basées sur ce que vous cherchez à réaliser. Vous pouvez utiliser les données de sortie que vous avez obtenues avecProfileur SQLfournirAssistant de réglage de l'indexavec des informations à surveiller. Surveillez le temps d’exécution des requêtes et gardez un œil ouvert sur les opérations inefficaces.
Une touche de réglage SQL par jour évite les mauvaises performances
Les attentes des utilisateurs en matière de performances sont plus impitoyables que jamais. Il suffit d’un léger retard pour envoyer les utilisateurs courir vers les collines.De manière proactivele réglage des bases de données SQL est nécessaire pour éliminer la latence et offrir l’expérience réactive qu’exigent les utilisateurs modernes.
Bien que la surveillance des performances SQL soit un processus continu, l'une des meilleures façons de commencer consiste à utiliser unplateforme de surveillance de base de données. Logiciel de surveillance de base de données vous offrira plus de visibilité et vous orientera vers des problèmes spécifiques à améliorer.
À partir de là, il existe 101 façons d’améliorer les performances des requêtes. Si vous êtes nouveau dans SQL, essayez de ne pas être déçu et concentrez-vous sur une petite amélioration à la fois. Si vous commencez par les bases comme réduire la taille des tables pour renforcer votre confiance, vous pouvez commencer à prendre des mesures plus compliquées plus tard.
FAQ sur le réglage des performances SQL
Comment pouvons-nous ajuster les performances en SQL ?
Voici quatre conseils pour optimiser les performances SQL :
- Utiliser un outil de surveillance SQL pour surveiller les performances
- Améliorer les index
- Prévenir les blocages de ressources
- Réduisez le temps d’exécution des requêtes
Comment accélérer l’exécution de ma requête SQL ?
Essayez ces quatre étapes pour accélérer l'exécution des requêtes SQL :
- Augmenter la mémoire du serveur
- Tables de partition
- Supprimer les jointures externes
- Réorganiser les jointures pour filtrer d'abord le plus grand nombre d'enregistrements
- Assurez-vous que les jointures atteignent les index
- Supprimer les caractères génériques dans la liste des colonnes
Qu’est-ce que l’optimisation des performances d’une base de données ?
L'optimisation des performances de la base de données implique l'amélioration des objets de base de données en examinant les index, les vues et la normalisation des tables. Les requêtes SQL doivent être écrites de manière à utiliser de manière optimale les structures de bases de données, telles que les index.