Avant de commencer l'exécution d'une requête, d'un lot, d'une procédure stockée, d'un déclencheur, d'une instruction préparée ou d'une instruction SQL dynamique sur un SQL Server, le lot est compilé et un plan d’exécution est généré. Le plan est ensuite exécuté pour produire un effet ou des résultats.
Les plans compilés sont enregistrés dans une portion de la mémoire du serveur SQL nommée cache de plan. Le cache de plan est exploré en vue de réutilisations possibles. Si on réutilise un plan pour un lot, on peut éviter les coûts de compilation ou recompilation. Les plans sont mis en cache dans l'éventualité de leurs réutilisations. Si un plan n’est pas mis en cache, la probabilité qu’il soit réutilisé est nulle. Dans cet article, nous décrirons quelques bonnes pratiques de programmation pour l'utilisation efficace du cache de plan.
Si votre application utilise la même requête avec seulement les valeurs des paramètres changeant d’une exécution à l’autre, paramétrer la requête dans le code de l’application avant l’exécution donne des gains significatifs de performance. Les gains d’exécution viennent du fait que la requête est compilée juste une fois pour l’exécution.
L’exécution préparée fournit également l’avantage de réduire le trafic réseau en éliminant la nécessité d’envoyer le texte des requêtes à SQL Server à chaque fois. Dans les cas où le texte de la requête est assez grand, le coût de transmission du texte du client au serveur à plusieurs reprises peut rapidement être non négligeable. Dans le cas de l’exécution préparée, tout ce qui doit être envoyé sur le réseau sont les valeurs des paramètres, et le handle de la requête (il y a une liste handles préparées par session).
Le handle préparé et associé avec une valeur hâchée représentant le texte de la requête qui ne doit être compilée qu’une fois (contre une fois par exécution en cas de non paramétrisation). En outre puisque le serveur ne fait aucune paramétrisation, il n’y a aucune chance que le cache de plan explose dû à un trop grand nombre de textes de requêtes.
Téléchargez cette ressource
Les 10 tendances clés de l’Expérience Client (CX) pour 2025
Dans le contexte actuel, l'expérience client est un levier clé de réussite. Pour rester compétitives, les entreprises doivent adopter des stratégies CX audacieuses, en s'appuyant sur le cloud, le digital et l'IA. Alors quelles stratégies mettre en place pour garder une longueur d’avance ?