Avis d’expert : améliorer les performances de serveurs MS SQL Server 3


Temps de lecture : 3 minutes
Share Button

Depuis plusieurs années, Rudi Bruchez intervient pour auditer et améliorer les performances de serveurs MS SQL Server, tout en animant des formations d’optimisation, et les problématiques rencontrées sont souvent les mêmes. Il profite de ce billet pour les résumer.
 

« Même si Microsoft ne le dit pas toujours, Les SGBDR (Systèmes de gestion de bases de données relationnelles) comme SQL Server sont des outils exigeants. Pour en obtenir le meilleur, il faut avoir un certain niveau de connaissance. Non seulement sur le moteur lui-même, mais aussi sur le langage SQL. C’est un langage particulier, déclaratif et ensembliste, qui requiert une façon de penser différente des langages orientés objet. Malheureusement, ces connaissances manquent souvent aux équipes de développement et cela induit une utilisation sous optimale de SQL Server.

Résumons la situation la plus souvent rencontrée :

– Une entreprise développe une application qui stocke ses données sur SQL Server. La phase de développement se passe sans problème, sur un serveur où seuls les développeurs se connectent, et qui contient un jeu de données limité. Le programme est alors testé, une démo est organisée pour montrer au management que tout fonctionne bien et que les temps de réponse sont bons. Le programme est ensuite mis en production sans test de charge. Au début, tout se passe bien, mais les performances se dégradent avec l’augmentation de la volumétrie et de la concurrence d’accès, et deviennent critiques au pire moment.

– Lors des périodes de forte activité, on se met alors à chercher des solutions. On ajoute de la RAM, on sépare les tables sur différentes partitions, on ajoute des processeurs… Sans savoir précisément d’où vient le problème et sans pouvoir prédire que cela va débloquer la situation. Ces solutions amènent quelques améliorations, mais à une échelle assez décevante, et le problème perdure.

Un SGBDR comme SQL Server n’est donc pas un entrepôt un peu bête qu’on optimise en lui dédiant une machine plus puissante. Cette forme de résolution de problème par les muscles n’est jamais une bonne idée en première instance. La vraie optimisation d’un moteur SQL passe par le cerveau, et par l’amélioration des structures, du code et de l’indexation. De plus, la difficulté d’accès du SGBDR et du langage SQL amène de nombreuses équipes de développement à passer par des couches d’abstraction comme les ORM (Object-Relational Mapping, ou outils de mapping relationnel-objet).

Même Microsoft recommande l’utilisation de son ORM, Entity Framework, pour l’accès à SQL Server. C’est compréhensible pour les besoins élémentaires avec une volumétrie raisonnable. Mais cela pose en revanche des problèmes là où la rapidité des traitements sur des volumes importants est essentielle. Un générateur de code comme EF est incapable d’utiliser pleinement les subtilités du langage SQL pour obtenir des requêtes optimisées. Il lui est aussi très difficile de traiter des opérations en mode ensembliste (par exemple une mise à jour de données sur un ensemble de lignes en une seule instruction).

Mais ceci est assez logique du point de vue du développeur. En effet le développement sur .NET est suffisamment complexe pour vouloir éviter d’ajouter encore la complexité du développement SQL. La manipulation de EF entraîne à se poser des questions purement .NET et purement objet en oubliant les exigences de SQL Server. C’est en prenant en compte ces éléments que nous avons développé chez Orsys plusieurs cours d’optimisation dédiés.

, qui met l’accent sur l’optimisation du code SQL, principalement à destination des développeurs. Il leur permet de mieux maîtriser les implications de l’écriture du code SQL sur les performances. Il met également l’accent sur l’art de l’indexation.

Ces formations ont pour objectif d’améliorer les connaissances et la culture du relationnel, du langage SQL et de SQL Server. »

Rudi Bruchez

A lire ou relire du même auteur :  L’Eldorado du NoSQL .

Rudi Bruchez est aussi l’auteur de Optimiser SQL Server, aux éditions Dunod que vous pouvez retrouver en cliquant ici.

http://www.babaluga.com

Share Button

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

3 commentaires sur “Avis d’expert : améliorer les performances de serveurs MS SQL Server