Administrateur PHPfrance |
430 Messages
27 avr. 2005, 16:50
OK c'est bon, merci a tout ceux qui m'ont aidés
Merci particulier à
ripat pour la fonction
PROCEDURE analyse() qui est super efficasse pour optimiser la structure (mieux vaut l'exécuter sans jointures c'est plus représentatif)
Le fin mot de l'histoire ? ok je vous le donne :
ripat m'en a donné l'idée dans son dernier message : un probleme d'index.
La base a une structure un peu *étrange*, notament au niveau de la table de facturation. Mon boss (qui sais bien faire des requête dans access, mais qui ne connais pas grand chose à SQL) s'est fait refourguer une table avec le primary index mal placé.
table :
Code : Tout sélectionner
n°ligne, Dossier , ....
01,A,...
02,A,...
03,B,...
04,A,...
le numéro de ligne est un auto increment => il a mis le primary index dessus sans tenir compte du numéro de dossier, mais il a quand même mis un index simple sur les dossier, pour accelerer ses requêtes.
Mais dans la (ma) *logique* sql le primary index aurais du être n°ligne+Dossier => quand j'ai optimisé la base j'ai viré les index superflus (en fait il en avais mis un pour chacune des 10 put*ins de colonnes de la table

=> j'y suis allé à la hache) et g laissé le primary uniquement
J'avais tenté de mettre un index sur dossier mais ca avais rien changé => j'avais abandonné ....
MAIS, je m'était planté de table, j'avais mis l'index dans la table client au lieu de le mettre dans la table facture
=> parfois je suis une buse !
Moralité, a trop regarder le probleme on fini par ne plus voir l'évidence
en tout cas, re
MERCI à tous