Vous devrez pardonner ma naïveté car je ne suis pas un administrateur de base de données, mais je crois comprendre qu'au fil du temps, les statistiques d'une modification de la base de données et une procédure stockée doivent être recompilées pour maintenir le plan de requête à jour avec les dernières statistiques.
En supposant que j'ai une procédure stockée dans ma base de données qui est recompilée avec les dernières statistiques à un intervalle régulier, quelles sont les implications de l'incrustation de la procédure stockée dans le code et de l'encapsuler dans une sp_executesql
instruction? Est-ce que je perds l'actualisation du plan de requête qui se produisait dans le cadre de la recompilation de la procédure?
S'il y a autre chose (autre que des autorisations) que je dois considérer avant de faire ce changement, j'apprécierais vos idées.
J'ai lu ceci sur MSDN:
La capacité de l'optimiseur de requêtes SQL Server à faire correspondre la nouvelle chaîne Transact-SQL avec un plan d'exécution existant est entravée par les valeurs de paramètre en constante évolution dans le texte de la chaîne, en particulier dans les instructions Transact-SQL complexes.
Donc, en supposant que la procédure stockée que j'essaie de connecter et de boucler sp_executesql
contient effectivement certains paramètres, cela signifie-t-il que bien que mon plan d'exécution soit mis en cache, je rend plus difficile pour SQL Server de le trouver et de le réutiliser?
la source