Bonjour a tous,
la requete suivante est beaucoups trop longue à executer, alors que les champs necessaires sont tous indexes.
explain SELECT DISTINCTROW FilmNeutre.NoIntFN, FilmNeutre.NoMereGen, FilmNeutre.CodeMatiere, FilmNeutre.Laize, FilmNeutre.Epaisseur, FilmNeutre.NoDossier, Dossiers.CodeClient, Dossiers.CodeArticle, FilmNeutre.Machine, FilmNeutre.NoIntProprietaire, FilmNeutre.CodeAide, FilmNeutre.CodeCond, FilmNeutre.RebutTotal, FilmNeutre.PoidsRebut, FilmNeutre.TypeSortie, Dossiers.NoCmdClient, Dossiers.QuantPoids, Dossiers.QuantNbre, Dossiers.QuantSurf, Dossiers.QuantLong FROM Dossiers INNER JOIN FilmNeutre ON Dossiers.NoDossier = FilmNeutre.NoDossier LEFT JOIN LiensAmont ON FilmNeutre.NoIntFN = LiensAmont.NoAmont WHERE (((FilmNeutre.TypeSortie)=1 Or FilmNeutre.TypeSortie=6) AND ((LiensAmont.NoAmont) Is Null)) ORDER BY FilmNeutre.NoDossier, FilmNeutre.NoIntFN ;
Elle met 22 sec en moyenne a se lancer sous mysql et sous access(avec des donnees et une structure similaire) elle met moin de 5 sec.
Apres plusieurs heures de recherches je n'ai toujours pas su trouver d'ou cela pouvait bien provenir.
J'ai donc fait un explain de ma requete et le resultat est le suivant:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Dossiers ALL PRIMARY NULL NULL NULL 22689 Using temporary; Using filesort
1 SIMPLE FilmNeutre ref NoDossier IX_9 11 stock.Dossiers.NoDossier 2 Using where
1 SIMPLE LiensAmont ref NoAmont NoAmont 5 stock.FilmNeutre.NoIntFN 2 Using where; Using index; Distinct
Ma question est la suivante: pour le champ Nodossier qui est une clef primaire, je ne dois pas faire d'index puisqu'une clef primaire
est automatiquement indexe (si je ne me trompe pas).
Or le resultat que me sort explain m'inquiete puisque dans les colones key, key_len et ref, les valeurs sont a NULL comme vous pouvez le voir.
Est ce normal que l'on ne voit pas le champ clef primaire apparaitre au lieu des valeurs NULL....
Cela expliquerait donc pkoi ma requette est si longue a s'executer...
pour que ceci soit corrige quelle conseil me donnez vous?
merci encore
--
Ben younes Ousama
- Epitech 5eme annee
- Ingenieur developpement A2I (Alliance Internationale Informatique)
- Web: http://www.noofs.com