[MSDE] Temps de résolution de SP incohérent
Bonsoir a tous !
Je vais essayer de vous exposer mon problème le plus clairement possible :
Certaines de mes procédures stockées ont un temps de résolution incohérent au possible ...
J'ai une requete avec la clause Where suivante :
Code:
1 2 3 4 5
| AnneeRef.Designation = @Annee AND
Structures.NumRegion = @NumReg AND
Structures.NumDep = @NumDep AND
Structures.NumStruct = @NumClub AND
Individus.ID >= @IDMin AND Individus.ID <= @IDMax ) |
cette requete me renvoit 1545 lignes (quand elle ne pars pas en timeout) et a un temps de résolution d'environ 35 secondes (ce qui est énorme)...
J'ai ensuite remarqué que des requetes tres similaires a celle-ci avaient un temps de résolution normal, la seule différence étant un test supplémentaire dans la clause WHERE .
J'ai donc ajouté dans le WHERE de ma requete incriminée un test qui renvoit toujours TRUE :
Code:
1 2 3 4 5 6
|
AnneeRef.Designation = @Annee AND
Structures.NumRegion = @NumReg AND
Structures.NumDep = @NumDep AND
Structures.NumStruct = @NumClub AND
Individus.ID >= @IDMin AND Individus.ID <= @IDMax ) AND HistoIndiv.IDTypeIndiv <> 9) |
et c'est la que cela devient abbérrant : Ma requete renvoit le meme nombre de lignes (1545) , ce qui est normal puisque ma nouvelle clause renvoit toujours TRUE, mais celle-ci est résolue en moins d'une seconde !
Logiquement rajouter un test a ma SP devrait plutot la ralentir étant donné que ce test n'élimine aucune ligne ? mais dans ce cas elle est résolue plus de 30 fois plus vite !!!
Si quelqu'un a déja rencontré ce genre de problème ou a une petite idée sur le sujet il est le bienvenu .....
Merci d'avance