Salut SQLPro, et Merci pour tes précisions.
En fait j'ai voulu parler des cas d'utilisation, que j'ai rencontrés plusieurs fois, et où à vouloir obstinément rendre une procédure la plus générique possible, gérant tous les cas et combinaisons possibles des paramètres en entrée, le développeur a recours à l’utilisation du CASE portant sur des expressions tordues
CASE (@param1 <> '' and (Champ1 = 'A') OR (@param2 <> '' AND champ2 = 'B') .. THEN
END
au lieu d'utiliser le SQL dynamique pour faire en sorte que la requête ne traite que le cas concerné en fonction des paramètres effectifs reçus en entrée. J'ai vu des requêtes de ce genre mettant plus 4 minutes pour s’exécuter alors qu'en les remplaçant par le SQL dynamique en obtient le même résultat en quelque millisecondes.
En fait j'ai voulu attirer l'attention sur le problème de performance des procédures générique lorsqu'on n'utilise pas le SQL dynamique.
A+
Partager