Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment accélérer votre serveur SQL à l'aide de la surveillance des performances de la base de données

Le maintien d'un serveur SQL hautes performances est essentiel non seulement pour les opérations de votre organisation, mais également pour vos clients. Lorsque vos serveurs tardent à répondre ou ne répondent pas du tout, vous perdez des clients. Voici trois domaines clés à surveiller de près pour vous assurer que les performances de votre serveur SQL sont optimales et des moyens d'améliorer les performances si vos métriques montrent que vous avez un problème.

Index

Si vos index fonctionnent bien, ils contribuent à un système rapide et fluide. Toutefois, si vos index souffrent de l'un de ces problèmes courants, vous constaterez peut-être que les performances de votre serveur SQL sont affectées négativement.

Métrique à surveiller :facteur de remplissage

Le facteur de remplissage est un paramètre dans SQL Server qui demande aux index de remplir chaque page X pour cent. Il semble intuitif que vous vouliez remplir chaque page à 100%, mais en réalité, le remplissage excessif des pages peut provoquer des fractionnements de page. Si un administrateur ajoute une ligne supplémentaire à une page complète, la nouvelle ligne pousse environ la moitié des lignes existantes vers une nouvelle page et la nouvelle ligne est ajoutée au bas de la première page.

Les fractionnements de page peuvent entraîner des problèmes de performances en raison du nombre accru d'opérations d'E/S et du potentiel de fragmentation. Cependant, trop d'espace sur une page peut également nuire aux performances, car les ressources sont dépensées inutilement.

Pour obtenir les meilleurs résultats de performances à partir de vos paramètres de facteur de remplissage, ne définissez pas de valeur à l'échelle du système. Examinez vos index individuellement et définissez le facteur de remplissage à un niveau approprié pour chacun. Par exemple, les index fréquemment fragmentés nécessitent une valeur de facteur de remplissage différente de celle des index qui ne sont presque jamais utilisés.

Métrique à surveiller :fragmentation

La fragmentation d'index se produit lorsque les utilisateurs ajoutent et suppriment des enregistrements. Le déplacement des éléments fait partie des opérations quotidiennes d'une base de données, mais au fil du temps, la fragmentation affecte les performances. La fragmentation peut causer quelques problèmes :

  • Trop d'espace vide sur trop de pages ralentit les numérisations et utilise inutilement de la mémoire
  • Les nouvelles pages sont ajoutées dans le désordre, il faut donc plus de temps au serveur pour trouver des données

Lorsque la fragmentation commence à affecter les performances, vous devez exécuter Rebuild ou Reorganize pour nettoyer les index fragmentés. L'exécution de la reconstruction créera un nouvel index et supprimera l'espace vide supplémentaire. Réorganiser met les pages feuille dans l'ordre afin que le serveur puisse trouver les données plus facilement.

Cache tampon

Lorsque SQL Server peut lire les pages du cache tampon, votre temps de réponse sera plus rapide. Les performances en pâtissent lorsque le serveur doit accéder au disque pour trouver une page, car il doit passer par une série d'étapes avant d'enregistrer la page dans la mémoire tampon, puis de la lire. Il existe quelques métriques que vous pouvez suivre pour vous aider à maintenir le cache de la mémoire tampon à des performances optimales.

Métrique à surveiller :espérance de vie des pages

L'espérance de vie de la page (PLE) est la durée pendant laquelle une page reste dans le cache du tampon sans être appelée avant d'être renvoyée sur le disque. L'augmentation du PLE améliore les performances, mais utilise également de la mémoire qui peut être nécessaire pour d'autres fonctions. Si vous souhaitez ajuster le PLE, vous devez déterminer la quantité de mémoire que vous pouvez utiliser sans affecter les performances ailleurs.

Métrique à surveiller :taux d'accès au cache de tampon

Le taux d'accès au cache tampon est le pourcentage de pages situées dans le pool de tampons par rapport à toutes les demandes de page. Le taux d'accès au cache de tampon doit être supérieur à 90 pour de meilleures performances (c'est-à-dire que SQL Server n'a pas à lire à partir du disque). Faites attention lorsque vous analysez les données de taux d'accès au cache de tampon. Une petite diminution du ratio peut ne pas indiquer un problème réel. Analysez les données conjointement avec PLE pour déterminer s'il existe un problème de performances réel.

Optimisation des requêtes

Les requêtes lentes et peu performantes sont l'un des problèmes de performances les plus courants de SQL Server. Il existe de nombreuses raisons possibles pour lesquelles vos requêtes ne fonctionnent pas correctement, il peut donc être difficile d'identifier une cause exacte. Mais il y a quelques choses que vous pouvez essayer au début de votre enquête qui peuvent améliorer les performances des requêtes avec un minimum d'effort.

Métrique à surveiller :analyse d'index

La vérification de la santé de votre serveur SQL devrait faire partie intégrante de vos tâches DBA. Lorsque les requêtes s'exécutent lentement, passez un peu plus de temps avec l'optimiseur de requête. Une chose importante à vérifier est si l'analyse de l'index SQL Server présente des problèmes que vous devez résoudre.

L'analyse d'index s'exécute plus fréquemment que nécessaire. L'analyse d'index prend beaucoup plus de temps que la recherche d'index, car la requête doit analyser chaque ligne à la recherche de données utiles. Configurez votre optimiseur de requêtes afin qu'il recherche les index plus souvent qu'il ne les analyse.

La réécriture d'une requête problématique est un autre moyen d'améliorer les performances. Parfois, la simplification des requêtes supprimera la partie qui cause l'enlisement de la requête. Vous pouvez également essayer d'ajouter des index pour accélérer les requêtes, mais cela fonctionne mieux dans certains cas que dans d'autres.

L'ajout d'index est une bonne solution pour les champs impliqués dans la recherche, le regroupement ou le tri ; champs fréquemment consultés ; et des champs avec des valeurs uniques. Il n'est généralement pas efficace d'ajouter des index sur des champs avec des valeurs en double telles que oui/non ou pour de petites tables.

La surveillance des performances de SQL Server est essentielle pour maintenir des bases de données hautement performantes. Le maintien de votre SQL Server à une vitesse maximale ne peut être atteint qu'en portant une attention particulière aux mesures de performances. Ajoutez les métriques décrites ci-dessus à votre liste de contrôle de maintenance pour identifier et corriger rapidement les problèmes de performances de SQL Server.