Salut tout le monde! J'etais hors radar depuis un bon moment a cause d'une mutation a l'etranger(ceci explique le manque d'accents dans mon texte, plus de claviers azerty
)
Je suis de retour avec une question qui m'embete :
De quelle facon SQL Server gere les requetes sp_executesql au niveau des plans d'execution?
Je sais que theoretiquement le moteur stocke des plans d'execution logiques et adapte quand on met les predicats en parametre
ex.
Ceci me parait clair et logique que le moteur prepare un plan d'execution garder en memoire optimise pour un predicat en parametre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 --requete simple SELECT * FROM PERSONS WHERE NAME = 'Toto' -- requete avec plan d'execution optimiser sur l'indexe de noms DECLARE @name VARCHAR(255) SET @name = 'Toto' SELECT * FROM PERSONS WHERE NAME = @name
Par contre si on passe pare sp_executesql on passe pare une procedure stockee et donc ca ne me parait pas clair comment le moteur puisse calculer un plan d'execution optimiser sur les indexes des tables dans l'SQL dynamique... pouvez vous me donner plus d'infos a ce sujet s'il vous plait?
Partager