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

5 astuces pour assurer des performances optimales de SQL Server

Les administrateurs de base de données portent de nombreux chapeaux dans les coulisses, de la planification des capacités à la sécurité en passant par la récupération des données. La surveillance des performances de SQL Server est peut-être la plus visible des responsabilités du DBA. Bien que les tâches quotidiennes associées à la maintenance d'un système performant puissent passer inaperçues du monde extérieur, vous feriez mieux de croire que les gens commenceront à y prêter attention lorsque les performances ne seront pas idéales.

Les pannes de base de données, les temps de réponse lents et d'autres problèmes rencontrés par les utilisateurs sont mauvais pour les affaires. Et, comme les performances de SQL Server (ou leur absence) relèvent carrément du domaine DBA, les bases de données peu performantes nuisent à la sécurité de votre travail.

La menace de chômage mise à part, garantir des performances optimales de SQL Server est essentiel au bon fonctionnement de votre organisation. Nous avons donc compilé cinq astuces que les DBA doivent connaître pour optimiser les performances de SQL Server.

Automatiser les tâches de routine et la maintenance

De nos jours, il n'y a aucune raison pour qu'un administrateur de base de données effectue manuellement de nombreuses tâches quotidiennes et contrôles de maintenance. Les outils actuels de surveillance des performances de SQL Server peuvent surveiller automatiquement l'espace disque, inspecter les journaux d'erreurs et vérifier les sauvegardes. Vous pouvez même configurer des alertes système qui vous permettent non seulement de savoir qu'il y a un problème, mais également de fournir des informations sur la gravité et le type de problème.

L'un des principaux avantages de ces outils de surveillance est que de nombreuses fonctionnalités de surveillance des performances sont accessibles via votre appareil mobile, ce qui rend le dépannage beaucoup plus flexible. Vous pouvez surveiller et trier votre système depuis pratiquement n'importe où et à tout moment.

Suivre les statistiques de performances

Bien sûr, il est important que vos outils de surveillance des performances de SQL Server détectent et résolvent les problèmes actuels, mais il est également très utile de suivre les performances passées. La surveillance et l'analyse des performances de la base de données au fil du temps vous aident à identifier les tendances et à anticiper les futurs problèmes de performances. Le suivi de l'historique des performances fournit des données indiquant si les performances sont meilleures ou moins bonnes sur une période donnée.

L'analyse de la charge de travail est un autre moyen d'obtenir des métriques de performances qui vous aident à améliorer les performances de SQL Server. Exécutez une analyse pour identifier l'impact d'un utilisateur, d'une base de données, d'un hôte ou d'une instruction SQL sur votre charge de travail. Si vous isolez une source qui a un impact négatif sur le système, il devient beaucoup plus facile de prendre les mesures appropriées pour résoudre le problème.

Identifier la cause première des goulots d'étranglement

Comme indiqué ci-dessus, une fois que vous avez isolé la source d'un goulot d'étranglement ou d'un tueur de performances, il est beaucoup plus facile de corriger le problème. Voici quelques sources courantes de goulots d'étranglement et de symptômes à surveiller :

  • Problèmes de processeur :SQL Server accapare le processeur
  • Problèmes de mémoire :temps d'exécution des requêtes plus longs
  • Problèmes de stockage :activité extrême sur les disques et longs temps d'attente par E/S
  • Problèmes d'E/S :le temps d'attente de WRITELOG est élevé par rapport au temps d'attente total

Une fois que vous avez identifié votre goulot d'étranglement, vous pouvez essayer quelques correctifs qui résolvent souvent les problèmes de performances courants, notamment :

  • Optimisation de SQL Server :isolez la requête spécifique qui a été retardée, le temps d'attente spécifique à l'origine du retard et l'impact temporel du goulot d'étranglement
  • Suppression des index obsolètes et en double :accélère les requêtes, car l'optimiseur n'a pas besoin de prendre en compte plusieurs index lors de l'analyse des performances des requêtes et de la détermination d'un plan.
  • Corrigez la fragmentation :la reconstruction ou la défragmentation périodique de vos index améliorera les performances en réduisant le nombre de pages de données dispersées ou partiellement remplies que SQL Server doit lire.

Exécuter des vérifications de routine des performances

Il vaut presque toujours mieux prévenir que guérir. Utilisez des bilans de santé pour identifier les problèmes réels et potentiels au sein du système. Les vérifications de l'état vous aideront à identifier les problèmes de sécurité, de reprise après sinistre, de mémoire, d'E/S et de configuration avant qu'ils ne causent des problèmes de performances majeurs.

Les contrôles de santé réguliers doivent inclure :

  • Vérification des index manquants :les index manquants ralentissent la réponse de SQL Server, car il doit rechercher des données dans chaque enregistrement. Mais ne soyez pas trop rapide pour simplement ajouter les index manquants; l'ajout d'index inutiles peut également affecter négativement les performances.
  • Surveiller les niveaux disproportionnés de requêtes ad hoc :l'utilisation occasionnelle de requêtes ad hoc ne pose aucun problème. Mais lorsqu'ils sont utilisés trop fréquemment, les performances en souffrent. SQL Server ne réutilise pas ces instructions, de sorte que le cache de procédure est gonflé, ce qui entraîne le vidage des données par le cache de tampon. SQL Server doit alors lire les données du disque (lent) au lieu de la mémoire.
  • Recherche de statistiques obsolètes :l'optimiseur de requêtes SQL Server utilise des statistiques pour calculer le coût estimé des opérations. Des statistiques obsolètes peuvent amener l'optimiseur de requête à sélectionner un plan d'exécution sous-optimal.

Mettre à niveau vers la dernière version de SQL Server

Celui-ci semble assez évident, mais si vous ne l'avez pas déjà fait, mettez à niveau vers la dernière version de SQL Server. SQL Server 2000, 2005 et 2008 ne sont plus en cours de développement actif et les nouvelles versions ont de nombreuses fonctionnalités qui augmenteront certainement les performances. Ces fonctionnalités incluent la dernière version de l'optimiseur de requête SQL Server, de nouveaux jeux d'instructions CPU et, bien sûr, des corrections de bogues.