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 :
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)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 )
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 :
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 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
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
Partager