> Data > Une Programmation Efficace pour SQL Server 2005

Une Programmation Efficace pour SQL Server 2005

Data - Par Frédéric Pichaut - Publié le 24 juin 2010
email

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.

Contenu complémentaire :

SQL Server 2005 Edition Express disponible gratuitement

Une Programmation Efficace pour SQL Server 2005

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 gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Data - Par Frédéric Pichaut - Publié le 24 juin 2010