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
État des lieux de la réponse à incident de cybersécurité
Les experts de Palo Alto Networks, Unit 42 et Forrester Research livrent dans ce webinaire exclusif leurs éclairages et stratégies en matière de réponses aux incidents. Bénéficiez d'un panorama complet du paysage actuel de la réponse aux incidents et de sa relation avec la continuité de l'activité, des défis auxquels font face les entreprises et des tendances majeures qui modèlent ce domaine. Un état des lieux précieux pour les décideurs et professionnels IT.