Bonjour, j'ai créer une procédures stockée qui me permet de retourner un résultat selon différentes critères de recherche.

Afin de filtrer mes donées selon ses différents critères, je suis obligé d'utiliser de nombreuses jointures. Ensuite pour filtrer concrétement mes données, je procédre ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
where
        (
               (@maVar is null)
               or
              (
                     (@maVar is not null)
                     and
                     (Critères de recherche)
              )
        )
J'ai cependant remarquer que même si ma variable est nulle, SQL va tout de même faire mon critère de recherche. Ce qui a pour conséquence de diminuer les performances. De même je me demande si faire toutes ses jointures qui ne servent pas forcément (en fonction des critères de recherche) ne diminuent pas les performances.

Je me demandais donc s'il n'était pas plus opportun de créer dynamiquement ma requête en fonction des critères puis de l'exécuter. Mais dans ce cas, il me semble de perdre tout l'intérêt des procèdures stockées.

Quelq'un a t il déjà mené quelques recherches dans ce sens ?

J'attends vos réponses.