La surveillance des performances de SQL Server est considérée par de nombreux administrateurs de base de données comme leur responsabilité la plus importante. Étant donné que des serveurs peu performants peuvent avoir un impact négatif non seulement sur les opérations internes, mais également sur les applications destinées aux clients, le suivi des performances SQL et la résolution rapide des problèmes sont essentiels au succès et à la rentabilité de l'entreprise.
Alors que de plus en plus d'organisations se tournent vers SQL Server, les administrateurs de base de données recherchent de plus en plus des ressources pour les aider à mettre en œuvre une solide stratégie de surveillance des performances. Il existe une abondance de documentation disponible pour aider les DBA à démarrer leur surveillance des performances de SQL Server, mais il y a quelques questions universelles auxquelles presque tous les DBA veulent une réponse rapide. Voici les réponses à 10 des questions les plus fréquemment posées sur la surveillance des performances de SQL Server.
Qu'est-ce que la surveillance des performances de SQL Server ?
L'objectif principal de la surveillance des performances de SQL Server est d'assurer des performances constantes et une haute disponibilité des instances de SQL Server. La surveillance des performances est un processus en deux parties, et les deux parties sont essentielles pour maintenir votre système opérationnel de manière optimale :
-
Surveillance : Suivez un large éventail de mesures de performance par rapport à des seuils prédéfinis pour identifier les comportements anormaux et fournir un mécanisme pour informer le DBA avec des alarmes spécifiques au problème et fournir suffisamment de contexte pour commencer le processus de diagnostic.
-
Diagnostic : Le flux de travail et les outils nécessaires pour établir la source d'un problème de performances et les données nécessaires pour résoudre le problème immédiat.
-
Analyse des causes profondes : Les informations permettant de regarder au-delà des symptômes et d'identifier les problèmes sous-jacents qui ont déclenché le problème et peuvent le faire se reproduire.
-
Analyse des tendances : Regardez les performances sur de longues périodes. Utilisez l'analyse des tendances pour identifier les problèmes avant qu'ils ne surviennent, afin de distinguer les problèmes ponctuels des problèmes récurrents ou d'examiner les limites de la charge de travail au fil du temps. Ce dernier peut être utilisé pour prévoir les besoins futurs en infrastructure, informer les efforts de consolidation ou la bonne taille pour la migration planifiée vers le cloud.
Quels sont les meilleurs outils de surveillance des performances de base de données ?
Le nombre de bases de données dont un administrateur de base de données est responsable rend la surveillance et les diagnostics manuels peu pratiques, voire impossibles. Heureusement, les dernières solutions logicielles de surveillance des performances sont équipées d'une tonne de fonctionnalités pour rendre la surveillance des performances gérable, même à grande échelle :
-
Gestion efficace des alarmes : Prioriser les alarmes signifie que vous pouvez d'abord vous attaquer aux gros problèmes et ignorer les fausses alarmes.
-
Diagnostics complets : Les meilleurs outils de surveillance des performances vous permettent d'approfondir les diagnostics. Savoir qu'il y a un problème n'est pas aussi utile que savoir comment le résoudre.
-
Temps de rentabilisation rapide : Chaque instance collecte des centaines de métriques, et les stocker sur site coûtera rapidement cher. Envisagez l'une des solutions de surveillance des performances SaaS pour les économies de coûts et l'évolutivité.
-
Analytique : Des analyses robustes sont un différenciateur clé entre les outils de surveillance des performances. Pour un impact maximal sur les performances, sélectionnez un outil qui fournit des mesures complètes pour la charge de travail, le plan de requête, la cause première de l'alarme et le blocage.
-
Suivi des données historiques : Recherchez un outil de surveillance des performances qui enregistre les données historiques. Cela accélérera le dépannage, car vous saurez si un problème est récurrent et comment les problèmes évoluent dans le temps.
-
Réglage et optimisation du plan de requête : Un outil avec intelligence artificielle intégrée vous permettra d'affiner les requêtes et de les optimiser pour une instance spécifique.
-
Vérifications de santé : Les vérifications de l'état surveillent les signes vitaux de SQL Server pour vous informer que vous pourriez avoir un problème, parfois avant même que le problème n'existe.
Si vous voulez un outil avec toutes les fonctionnalités décrites ci-dessus, vous devrez vous tourner vers l'une des solutions de surveillance des performances SQL Server basées sur le cloud. Inégalés en termes d'évolutivité, de flexibilité et de prix, ces outils de surveillance fournissent une plate-forme de surveillance des performances sécurisée pour répondre à tous les besoins.
Quel est le meilleur moyen d'optimiser la surveillance des performances de la base de données ?
L'automatisation est l'un des meilleurs moyens d'optimiser la surveillance des performances. L'automatisation des tâches courantes, telles que la surveillance de l'espace disque, l'inspection des journaux d'erreurs et la vérification des sauvegardes de la base de données, garantira que ces tâches sont terminées, ce qui donne au DBA plus de temps pour effectuer un travail de plus grande valeur.
De plus, vous pouvez implémenter les éléments suivants pour optimiser la surveillance des performances de votre serveur SQL :
-
Surveillance mobile : La surveillance mobile est disponible à partir de vos appareils Android et iOS. Fournissant des cartes thermiques, des alarmes intelligentes et des listes d'alarmes, la surveillance des performances mobiles vous permet de diagnostiquer les problèmes et de commencer le tri de n'importe où.
-
Réglage et optimisation des requêtes : Le réglage des performances vous permet de visualiser, d'analyser et d'optimiser vos requêtes SQL et vos plans d'exécution en mettant en évidence les opérateurs les plus coûteux, en proposant des solutions aux problèmes et en réécrivant/optimisant vos requêtes et votre plan de requête.
-
Vérifications de santé : Les vérifications de l'état vous aident à optimiser votre surveillance des performances en identifiant les problèmes d'intégrité au sein de chaque instance SQL Server, y compris les longues attentes et la latence des E/S. Les vérifications de l'état fournissent également des données historiques, ce qui vous permet de suivre les problèmes de performances au fil du temps.
Comment choisir un outil de surveillance SQL Server ?
Il y a deux considérations principales lors du choix d'un outil de surveillance des performances de SQL Server.
Quel type d'outil recherchez-vous ?
Il existe trois principaux types d'outils de surveillance des performances à prendre en compte :
-
Sur mesure/construit en interne : Dans ce cas, gardez à l'esprit que ce n'est pas parce que vous pouvez faire quelque chose que vous devez toujours le faire. Oui, vous pouvez mettre en place un outil de surveillance des performances interne pour collecter des mesures à l'aide de PerfMon, de traces, de DMV et de XEvents. Mais les inconvénients l'emportent de loin sur les avantages de prendre cette route. Il n'est pas évolutif, donc à mesure que vos instances augmentent, vos capacités de surveillance des performances en souffrent. De plus, il n'est pas possible de surveiller tout ce que vous devez surveiller pour garantir des performances optimales de SQL Server. Une fois que vous commencez à collecter des données, vous devez les stocker quelque part pour qu'elles soient utiles, et cela peut coûter cher. En fin de compte, est-il plus utile pour vous de consacrer votre temps précieux à créer et à maintenir un outil de surveillance des performances ou de le consacrer à la réparation et au réglage des charges de travail critiques.
-
Gratuit/open source : C'est potentiellement un meilleur choix que de créer votre propre solution de surveillance des performances, mais il y a encore des limites. Bien que vous gagniez un peu en personnalisation, vous manquez toujours d'étendue de couverture et d'alertes préconfigurées. Vous devrez également fournir votre propre espace de stockage de données. Il s'agit d'un processus complexe pour créer un outil capable de capturer efficacement de grandes quantités de données de performances sans affecter le serveur surveillé, de définir les seuils appropriés pour des centaines de métriques, de gérer de gros volumes de données collectées, puis de les maintenir à jour à partir d'une version de Serveur SQL à l'autre. Concentrez votre temps sur la résolution de problèmes et non sur la création de systèmes de surveillance des performances. Si vous dépendez des mises à jour de la communauté, la prise en charge des nouvelles versions d'une plate-forme de base de données peut retarder sa sortie.
-
Commercial : Les outils commerciaux de surveillance des performances SQL offrent une gamme de fonctionnalités et de niveaux de personnalisation, et beaucoup sont étonnamment abordables. Les outils commerciaux facilitent la surveillance des performances avec des options telles que les bilans de santé, la gestion des alarmes, les diagnostics de performances et les capacités de surveillance mobile, des fonctionnalités que vous n'obtiendrez pas avec des outils gratuits ou ceux créés en interne.
Quels sont vos besoins pour votre environnement spécifique ?
Avant de sélectionner un outil de suivi des performances, posez-vous ces questions pour vous aider à identifier l'outil qui répond à vos besoins spécifiques :
-
Combien d'instances voulez-vous surveiller ?
-
Sont-ils colocalisés ou dispersés ?
-
Sont-ils sur site ou dans le cloud (ou les deux) ?
-
Pouvez-vous vous permettre un paiement forfaitaire pour l'infrastructure et les licences, ou devez-vous répartir les coûts ?
-
Disposez-vous d'une infrastructure et d'instances de base de données à dédier à un outil de surveillance ?
-
Disposez-vous de temps ou de ressources en interne pour créer et maintenir une infrastructure de surveillance ?
-
L'outil a-t-il la capacité de disséquer la charge de travail sur plusieurs dimensions instantanément, pour vous faire gagner des heures de script ?
-
Existe-t-il une fonctionnalité intelligente pour analyser les données et vous aider à identifier des problèmes spécifiques ?
-
L'outil fournit-il des diagnostics instantanés, des bonnes pratiques ou un diagnostic de l'exploration pertinente ?
Quel est le meilleur moyen de surveiller l'état des performances de la base de données ?
Plusieurs signes indiquent que votre serveur SQL n'est pas sain, notamment :
-
Ralentissement général de la charge de travail
-
Délais de connexion/requête
-
Utilisation excessive du processeur
-
Pression mémoire
-
Latence de lecture/écriture d'E/S excessive
-
Journal des transactions ou taille TempDB excessive
Si vous remarquez l'un de ces symptômes, il est temps de configurer des bilans de santé pour que votre système retrouve des performances optimales. Voici quelques étapes initiales que vous pouvez suivre pour identifier la cause des problèmes de performances :
-
Établir une base de performance et mesurer par rapport à celle-ci
-
Vérification des sauvegardes
-
Recherche d'index manquants
-
Déterminer quel pourcentage de la charge de travail provient de requêtes ad hoc
Quelles sont les meilleures métriques pour la surveillance des performances de SQL Server ?
Il existe des centaines de mesures que vous pouvez mesurer pour vous aider à suivre et à améliorer les performances, mais il y a quelques éléments remarquables qui devraient faire partie de chaque plan de maintenance SQL Server. Voici quelques-uns des principaux domaines à surveiller et les métriques que vous voudrez garder à l'œil :
-
Index. Les index sont une source fréquente de problèmes de performances car les bases de données sont en constante évolution. Les données sont ajoutées et supprimées, et les index sont modifiés et supprimés, ce qui contribue à de mauvaises performances. Voici les statistiques à surveiller :
- Facteur de remplissage
- E/S
- Fragmentation
-
Cache tampon. Il est important de configurer le cache de tampon pour optimiser la durée pendant laquelle les pages y restent sans en faire trop et sans monopoliser la mémoire nécessaire ailleurs. Voici les statistiques à surveiller :
- Durée de vie des pages
- Taux d'accès au cache tampon
-
T-SQL. Au lieu d'exécuter des instructions SQL ad hoc, SQL Server les regroupe, les compile dans un plan d'exécution et les met en cache, en recompilant les instructions selon les besoins. Des compilations et recompilations excessives peuvent dégrader les performances. Voici les statistiques à surveiller :
- Compilations SQL
- Recompilations SQL
-
Autres statistiques à surveiller de près :
- Verrouille les attentes et les processus bloqués
- Utilisation du processeur
Quels sont les problèmes courants liés à la surveillance des performances des bases de données ?
Goulets d'étranglement des performances
Les goulots d'étranglement des performances se manifestent par des bases de données lentes ou qui ne répondent pas. Les goulots d'étranglement peuvent être difficiles à localiser car ils peuvent être liés à la mémoire, au stockage ou au processeur. Cependant, il y a quelques endroits où vous devriez d'abord rechercher les problèmes :
- Temps d'attente WRITELOG
- JOINTURE DE BOUCLES IMBRANCHEES
- Conflit TempDB
L'espérance de vie des pages (PLE) est faible
Un PLE faible nuit aux performances car SQL Server doit accéder au disque plus fréquemment pour trouver des fichiers de données, ce qui prend beaucoup plus de temps que de les lire à partir du cache de tampon.
Fragmentation
Vérifiez vos index pour une fragmentation excessive. Les performances de SQL Server souffrent lorsqu'il doit rechercher des pages dispersées et partiellement remplies pour trouver des données.
Comment dois-je configurer mon système de surveillance des performances de ma base de données ?
Une fois que vous avez choisi une solution de surveillance des performances SQL Server, il est temps de la mettre en place et de la faire fonctionner. Bien que vous souhaitiez peut-être plonger immédiatement dans toutes les nouvelles fonctionnalités brillantes, prendre du recul et aborder le processus méthodiquement vous aidera à tirer le meilleur parti de votre système. Voici quelques conseils pour intégrer votre nouvel outil de gestion des performances :
-
Décidez quelles instances ont le plus besoin de votre attention
-
Parcourez les prérequis
-
Connaître la configuration système requise
-
Télécharger le programme d'installation
-
Ajouter des connexions
Quelles requêtes puis-je utiliser pour la surveillance des performances du serveur SQL ?
Les requêtes que vous utilisez pour la surveillance des performances varient en fonction des métriques que vous suivez. Cependant, la détection des problèmes de mémoire, l'évaluation de la défragmentation d'index et l'identification des temps d'attente inacceptables figurent probablement en tête de liste de contrôle des performances de chaque administrateur de base de données. La documentation SQL Server de Microsoft fournit des détails sur un certain nombre de requêtes pour vous aider à mettre en œuvre votre plan de surveillance des performances :
-
Utilisation de la mémoire
-
Défragmentation d'index
-
Statistiques d'attente
Quelles sont les meilleures pratiques de surveillance des performances des bases de données ?
Certaines personnes ne sont pas d'accord avec le terme "meilleures pratiques", mais lorsqu'il s'agit de la surveillance des performances de SQL Server, il est indéniable qu'il y a certaines choses qu'un administrateur de base de données doit faire pour maintenir le système en bon état et les utilisateurs satisfaits.
Faites de la maintenance de l'index une priorité
Négliger vos index est un moyen infaillible de générer des problèmes de performances. Les index sont à l'origine de problèmes de performances courants, notamment la fragmentation et les fractionnements de pages.
Connaissez votre charge de travail
Il est difficile de savoir quand vous avez un problème si vous ne savez pas à quoi ressemble la "normale". Prenez le temps de connaître votre charge de travail en posant des questions telles que :
-
Quand cette instance est-elle la plus occupée ?
-
Quelles applications utilisent cette instance ?
-
À quand remonte la dernière sauvegarde ?
-
Cette instance présente-t-elle des problèmes de performances connus ?
Choisissez un outil de suivi des performances qui répond à vos besoins spécifiques
Avant de vous engager dans un outil de surveillance des performances SQL Server, vous devez d'abord définir vos besoins. Une fois que vous comprenez ce que vous essayez d'accomplir avec votre outil de surveillance des performances, vous pouvez rechercher en toute confiance une solution avec les fonctionnalités qui répondent à vos besoins.
Identifiez et corrigez les goulots d'étranglement des performances
Les symptômes évidents des goulots d'étranglement des performances incluent l'utilisation de trop de mémoire, de longs temps d'attente, la fragmentation des index et trop ou trop peu d'index. Trouver et résoudre rapidement ces goulots d'étranglement est l'une des principales responsabilités d'un DBA. Le meilleur moyen de maintenir les performances de la base de données à un niveau optimal consiste à mettre en œuvre un outil de surveillance des performances qui vous aide à localiser et à résoudre facilement les goulots d'étranglement des performances et d'autres sources de dégradation des performances.