Les administrateurs de base de données jouent un rôle essentiel au sein d'une organisation. En tant que dépositaires des données, ils sont responsables de la gestion de tous les aspects des performances de la base de données, y compris la haute disponibilité, le temps de traitement rapide des requêtes, l'atténuation des risques et la reprise après sinistre. De plus, les administrateurs de bases de données sont responsables de l'objectif commercial de maintenir les bases de données de l'organisation dans un souci de retour sur investissement et d'économies de coûts.
Avec toutes les casquettes qu'ils portent, les administrateurs de bases de données doivent travailler efficacement et une gestion efficace du temps est leur meilleur ami. La meilleure façon d'atteindre l'efficacité est de se concentrer d'abord sur les activités clés qui aideront à maintenir les performances optimales des bases de données.
Voici quatre activités de surveillance de base de données qui devraient figurer en tête de la liste des "incontournables" de chaque DBA.
Comment (et pourquoi) ajuster les paramètres par défaut dans SQL Server
De nombreux administrateurs de base de données exécutent SQL Server tel quel, dès la sortie de la boîte. Cependant, les configurations par défaut ne sont pas toujours le meilleur choix du point de vue de la sécurité ou des performances. Les bases de données de chaque organisation sont différentes et répondent à des besoins commerciaux différents. Il est donc logique que toutes les bases de données ne soient pas configurées de la même manière.
En fonction de vos besoins et préférences spécifiques en matière de base de données, vous pouvez modifier plusieurs paramètres SQL Server par défaut :
- Facteur de remplissage :si vous créez un index sans spécifier la valeur du facteur de remplissage, la valeur par défaut est 0. Cela signifie que la page se remplira à pleine capacité et que toute insertion, suppression ou mise à jour peut entraîner des divisions et une fragmentation excessives de la page.
Il n'y a pas de valeur de facteur de remplissage universellement "correcte", mais 80-90 est normalement un choix sûr. Cette plage de valeurs permet de remplir 80 à 90 % de la page, laissant 10 à 20 % de libre.
- Seuil de coût pour le parallélisme :le seuil de coût pour le parallélisme est la valeur à laquelle le moteur SQL Server commence à exécuter des plans parallèles pour vos requêtes. La valeur par défaut est de cinq secondes, mais cette valeur est assez faible et peut créer un grand nombre de requêtes inutilement complexes, ce qui affectera négativement les performances.
Commencez avec un paramètre de 20 secondes et ajustez-le au besoin en fonction des attentes de CXPACKET et de l'utilisation du processeur.
- Croissance automatique du fichier de base de données :la croissance automatique est un processus qui se produit lorsque le moteur SQL Server augmente la taille d'un fichier de base de données lorsqu'il manque d'espace. La croissance du fichier est définie par défaut sur 1 Mo pour les fichiers de données et 10 % pour les fichiers journaux des transactions.
Chaque base de données augmentera à des rythmes différents, alors estimez de combien vous pensez que la base de données augmentera et définissez la valeur en conséquence.
- Modèle de récupération de base de données :le modèle de récupération par défaut est COMPLET, mais il n'est pas efficace pour toutes les bases de données.
Modifiez le paramètre sur SIMPLE pour les bases de données qui ne sont pas critiques et laissez le paramètre sur FULL uniquement pour les bases de données de production à haut risque. - Mémoire maximale du serveur :la valeur par défaut est de 2 To, ce qui signifie que SQL Server alloue toute la mémoire du système d'exploitation. Cela ne laisse aucune mémoire à utiliser par le système d'exploitation.
Ajustez le paramètre pour maximiser la quantité de mémoire disponible pour le processus SQL Server, mais laissez un peu au système d'exploitation à utiliser si nécessaire. - Degré maximal de parallélisme (MAXDOP) :MAXDOP contrôle le nombre de processeurs utilisés pour l'exécution d'une requête dans un plan parallèle. La valeur par défaut est 0, ce qui signifie que SQL Server doit déterminer le nombre de processeurs qu'il peut utiliser. Si vous laissez le coût du seuil de parallélisme à la valeur par défaut de 5, vous risquez d'utiliser tous les processeurs pour chaque requête.
Le paramètre MAXDOP idéal varie en fonction de votre système spécifique, mais Microsoft propose ici quelques suggestions. - Compression de sauvegarde :le paramètre par défaut de cette fonctionnalité est DÉSACTIVÉ. Cependant, la compression de sauvegarde accélère les opérations de sauvegarde de la base de données et crée des fichiers de sauvegarde de plus petite taille, vous pouvez donc l'activer.
Un dernier conseil pour ajuster les paramètres SQL Server à partir des valeurs par défaut :testez toujours le système de manière approfondie après avoir modifié des paramètres pour vous assurer qu'aucun problème n'a été introduit par inadvertance.
Comment éliminer les goulots d'étranglement SQL Server
Les goulots d'étranglement de SQL Server sont une source courante de problèmes de performances, notamment la surcharge du processeur par SQL Server, les longs temps d'exécution des requêtes, les E/S excessives et l'activité extrême sur les disques.
Il existe de nombreuses raisons non liées au goulot d'étranglement pour lesquelles votre base de données peut rencontrer ces problèmes de performances, mais si le problème provient des goulots d'étranglement de SQL Server, trois domaines principaux sont susceptibles d'être affectés :la mémoire, les E/S et le processeur.
Les goulots d'étranglement de mémoire résultent de ressources mémoire insuffisantes ou d'activités SQL Server utilisant trop de mémoire disponible. Faites attention aux temps d'exécution des requêtes plus longs, aux E/S excessives, aux messages de manque de mémoire dans le journal des applications et aux plantages fréquents du système.
Les goulots d'étranglement d'E/S se produisent lorsqu'il n'y a pas assez de stockage disponible pour prendre en charge les opérations de base de données régulières telles que tempDB. Faites attention aux temps de réponse longs, aux ralentissements des applications et aux délais d'expiration fréquents des tâches.
Les goulots d'étranglement du processeur sont causés par des ressources matérielles insuffisantes. Recherchez dans la surveillance de votre base de données les données de journal indiquant que SQL Server utilise un processeur excessif.
Comment empêcher la croissance de tempDB
TempDB est un espace de travail temporaire dans les instances SQL Server utilisé pour créer et conserver des objets intermédiaires et temporaires. TempDB est l'une des ressources les plus actives dans un environnement SQL Server, il est donc important de surveiller et de contrôler la croissance excessive de tempDB.
TempDB est fréquemment utilisé dans une instance car il est utilisé pour stocker des objets utilisateur, des objets internes et des magasins de versions. Une croissance excessive de tempDB peut entraîner des problèmes de performances. Il est donc important de suivre les requêtes volumineuses, les tables temporaires et les variables de table qui utilisent une grande quantité d'espace disque tempDB.
Pour optimiser la taille et la croissance de tempDB, Microsoft recommande les bonnes pratiques suivantes :
- Définissez le modèle de récupération de tempDB sur SIMPLE
- Autoriser les fichiers tempDB à croître automatiquement selon les besoins
- Définissez l'incrément de croissance du fichier sur une taille raisonnable pour éviter que les fichiers de la base de données tempDB n'augmentent d'une valeur trop petite
- Préallouez de l'espace pour tous les fichiers tempDB en définissant la taille du fichier sur une valeur suffisamment grande pour s'adapter à la charge de travail typique dans l'environnement
- Faites en sorte que chaque fichier de données ait la même taille
Vous pouvez ajuster les paramètres de taille et de croissance des fichiers de données tempDB à l'aide de SQL Server Management Studio.
Comment calculer le coût total de possession
Bien que vous ne passiez peut-être pas beaucoup de temps à réfléchir au budget de votre entreprise, vous feriez mieux de croire que le directeur financier le fait. Lorsqu'il est temps de demander une nouvelle technologie de surveillance des performances, il est judicieux de se préparer avec des données concrètes pour étayer votre demande.
L'une des données les plus influentes que vous pouvez présenter est le coût total de possession (TCO) potentiel de la nouvelle technologie par rapport à votre solution actuelle. En plus des coûts directs, assurez-vous de prendre en compte les coûts indirects tels que les coûts d'infrastructure et de ressources telles que la maintenance.
La réduction du coût total de possession est un objectif commun pour les administrateurs de base de données qui envisagent de remplacer leur outil actuel de surveillance des performances de la base de données. Plusieurs facteurs doivent donc être pris en compte. Comme mentionné ci-dessus, il est important d'examiner non seulement les coûts directs tels que le prix d'achat, mais également les coûts indirects tels que le stockage et les coûts des ressources telles que la formation.
Pour déterminer le TCO du nouvel outil, branchez vos spécificités dans un calculateur de TCO et voyez quelles sont les économies de coûts, le cas échéant.