Je dois ajouter un index à une table, et je veux recompiler seulement/toutes les procédures stockées qui font référence à cette table. Y a-t-il un moyen rapide et facile?ajouter l'index SQL Server mais comment recompiler uniquement les procédures stockées affectées?
EDIT:
de SQL Server 2005 en ligne, recompilation Procédures stockées:
En tant que base de données est modifiée par des actions telles que l'ajout d'index ou de modifier des données dans les colonnes indexées, les plans de requête d'origine utilisés pour l'accès ses tables devraient être optimisées à nouveau en les recompilant. Cette optimisation se produit automatiquement la première fois qu'une procédure stockée est exécutée après le redémarrage de Microsoft SQL Server 2005. Cela se produit également si une table sous-jacente utilisée par la procédure stockée change. Toutefois, si un nouvel index est ajouté à partir duquel la procédure stockée peut bénéficier, l'optimisation ne se produit pas jusqu'à la prochaine exécution de la procédure stockée après le redémarrage de Microsoft SQL Server. Dans cette situation, il peut être utile de forcer la procédure stockée à recompiler la prochaine fois qu'elle s'exécute
Une autre raison de forcer une procédure stockée à recompiler est de contrer, si nécessaire, le comportement de "reniflage de paramètres" de la procédure stockée compilation. Lorsque SQL Server exécute des procédures stockées, toutes les valeurs de paramètre utilisées par la procédure lors de la compilation sont incluses dans le cadre de la génération du plan de requête. Si ces valeurs représentent les valeurs typiques avec lesquelles la procédure est appelée par la suite, la procédure stockée bénéficie du plan de requête chaque fois qu'elle est compilée et exécutée. Sinon, les performances peuvent en souffrir
Que voulez-vous dire par « recompiler "? Les procédures stockées n'ont pas besoin d'être compilées.Parlez-vous de mettre à jour vos requêtes SQL pour utiliser différentes clauses WHERE en utilisant des colonnes qui sont maintenant indexées? – karlgrz
@KG: Les procédures stockées doivent être recompilées automatiquement par SQL Server ou manuellement afin qu'un nouveau plan d'exécution puisse remplacer le plan désormais obsolète dans le cache du plan, afin d'utiliser l'index nouvellement ajouté. –
@KG, je pensais sp_recompile [@objname =] 'objet', provoque les procédures stockées et les déclencheurs à recompiler la prochaine fois qu'ils sont exécutés. –