> Tech > 1.2 – Le cache des procédures

1.2 – Le cache des procédures

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

S’il est un cache bien amusant, c’est celui des procédures. Il sert simplement à se souvenir que tel ou tel bout de code – en fait et plus précisément, telle ou telle requête – a déjà été jouée et que l’on en a déduit un plan d’exécution. Toute requête SQL

est en fait une chaîne de caractères. Pour savoir si une requête a déjà été jouée, aux paramètres près12, il suffit de comparer les chaînes de caractères des requêtes déjà présentes dans le cache avec la nouvelle arrivée. Si la phrase est identique, le plan de requête déjà établi est immédiatement rejoué.

On économise ainsi un nouveau calcul du plan de requête. Mais les caches de procédures, qu’ils soient Oracliens ou Microsofties portent tous le même défaut : pour être rapides, ils se contentent d’analyser binairement les chaînes de caractères. Autrement dit, une même requête écrite, l’une avec des noms d’objet en majuscule et l’autre, sa soeur jumelle, écrite avec un mélange de majuscules et de minuscules feront l’objet de deux entrées dans le cache donc de deux plans de requêtes.

C’est à dire : deux fois plus de temps de calcul pour le plan mais surtout deux fois plus de volume pour le cache. Or, plus de cache mangé pour les procédures, c’est moins de cache pour les données… Vous pouvez donc en déduire une première règle de minimisation du cache : écrire toujours vos requêtes de la même façon, en particulier pour la casse. Et pour cela, vous disposez d’un atout simple avec SQL Server : la collation d’installation ! Préférez là binaire… Second commandement : les requêtes devront toujours être écrites de la même façon (en particulier avec la même casse) afin de minimiser globalement le cache.

Téléchargez cette ressource

Guide des Solutions Cloud & Services Managés Simplifiés

Guide des Solutions Cloud & Services Managés Simplifiés

Comment capitaliser sur son existant tout en bénéficiant, dès à présent, des promesses de flexibilité et de scalabilité du cloud ? Découvrez les bonnes pratiques pour répondre aux défis de simplification du Cloud dans ce nouveau TOP 5.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010