Cette semaine, j’ai rencontré un problème intéressant avec une application SQL Server. L’équipe de l’application a signalé un message d’erreur indiquant “Connexion SQL perdue” à des moments spécifiques. En tant qu’administrateur SQL Server, il était de ma responsabilité d’enquêter et de résoudre le problème.
Initialement, j’ai examiné les journaux SQL et les vues de gestion dynamique (DMV) pour identifier toute indication de connexions perdues. Cependant, je n’ai trouvé aucune preuve indiquant que SQL Server était la cause du problème. J’ai également vérifié les journaux de l’application, mais ils ne fournissaient qu’un message d’erreur générique.
Ma prochaine étape a été d’analyser les journaux système, espérant trouver des indices. Étonnamment, la seule chose qui coïncidait avec les moments signalés du problème était une analyse antivirus complète. Cette révélation m’a amené à considérer l’impact des analyses antivirus sur les performances de SQL Server.
L’IO (Entrée/Sortie) est souvent le principal goulot d’étranglement pour SQL Server, et une analyse antivirus peut générer une IO supplémentaire significative. Dans ce cas particulier, l’application effectuait une importation de données nocturne importante, ce qui a exacerbé le problème. Pour résoudre temporairement le problème, nous avons ajusté l’heure d’importation pour éviter les chevauchements avec l’analyse antivirus. Cependant, cela n’était pas une solution durable.
Notre objectif à long terme était de configurer le logiciel antivirus sur nos serveurs SQL de manière à minimiser son impact sur les performances de SQL Server. Voici quelques conseils qui peuvent vous aider à y parvenir :
- Assurez-vous que les analyses antivirus ne coïncident pas avec les tâches SQL importantes telles que les importations ou les packages SSIS. Planifiez-les à des moments différents pour éviter les conflits de ressources.
- Créez des exemptions d’analyse pour les extensions de fichiers couramment associées aux bases de données SQL Server, telles que .MDF, .NDF et .LDF. Cela empêche l’analyse inutile de ces fichiers, réduisant la surcharge IO.
- Si vous disposez de lecteurs dédiés pour vos fichiers de base de données, envisagez de créer une exemption pour ce lecteur. Cependant, faites preuve de prudence car cette approche peut être risquée. Si un fichier malveillant est déposé sur le lecteur exempté, il peut passer inaperçu. Il est généralement plus sûr de baser les exemptions sur les extensions de fichiers plutôt que sur des lecteurs entiers.
- Si vos sauvegardes sont stockées sur le même lecteur que vos fichiers de base de données (ce qui n’est pas recommandé), créez des exemptions d’analyse pour les extensions de fichiers de sauvegarde (.BAK et .TRN). Cela empêche le logiciel antivirus de scanner les sauvegardes et d’impact potentiellement les performances.
En suivant ces directives, vous pouvez trouver un équilibre entre maintenir un environnement sécurisé et optimiser les performances de SQL Server. Il est crucial de collaborer avec votre équipe antivirus pour vous assurer que le calendrier d’analyse correspond aux besoins de votre environnement SQL Server.
N’oubliez pas que si les analyses antivirus sont essentielles pour protéger votre système, elles peuvent également entraîner des problèmes de performances si elles ne sont pas correctement configurées. Prenez le temps d’ajuster les paramètres de votre logiciel antivirus pour obtenir les meilleures performances possibles pour votre SQL Server.