sos probleme de requettes !!!

sos probleme de requettes !!! - SQL/NoSQL - Programmation

Marsh Posté le 01-02-2008 à 10:55:40    

HELP g une requette mysql qui foctionne mais elle est trop lourde  :fou:  en execution y'a t il moyen de l'optimiser.
 
$strSQL = "SELECT f.code_personne,p.nom_personne   FROM facture f,personne p where f.code_personne=p.code_personne";
 
je sé elle est simple mé...  :sweat:  
 

Reply

Marsh Posté le 01-02-2008 à 10:55:40   

Reply

Marsh Posté le 01-02-2008 à 10:58:14    

Y a des index sur tes tables "facture" et "personne" ?


Message édité par Elmoricq le 01-02-2008 à 10:58:46
Reply

Marsh Posté le 01-02-2008 à 11:13:34    

Code :
  1. CREATE INDEX ix_facture_personne ON facture (code_personne);


 
pour la table personne, je suppose que code_personne est déclarée comme clé primaire ?
 
t'as bien une clé étrangère entre les deux tables sur le champ code_personne ?
 
tu peux aussi passer par le mode verbeux pour la jointure, afin d'être sûr que l'optimiseur va bien faire son travail.
 
aussi, tu récupères plein de doublons, je ne pense pas que ça te soit très utile si ?
 
voici comment je réécrirais la requête, après avoir créé l'index que je t'ai indiqué, et vérifier la présence d'une PK sur personne et d'une FK entre les deux tables sur le champ code_personne.
 

Code :
  1. SELECT DISTINCT p.code_personne, p.nom_personne
  2. FROM personne p
  3. INNER JOIN facture f ON f.code_personne = p.code_personne;


Message édité par MagicBuzz le 01-02-2008 à 11:14:10
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed