Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1411 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Optimisation d'une requete mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Optimisation d'une requete mysql

n°1322647
tartiflett​e75
Posté le 10-03-2006 à 12:05:00  profilanswer
 

Bonjour à tous,
 
Je cherche à optimiser cette requête qui met un temps fou dans un cas précis.
Si le WHERE exists est confirmé alors la requete est très rapide.  
En revanche si le "WHERE exists" n'est pas vérifié alors la requête devient vraiment très lente et met plus de 20mn pour seulement 10 000 enregistrements.
Quelqu'un connaitrait-il une méthode pour optimiser cette requête ou pour régler mon problème ?
Merci par avance.
 

Code :
  1. insert into lignes_cde_his
  2. SELECT * from lignes_cde
  3. where exists(select * from temp where DateTraitement != temp.DateTraitement2 AND SiteCode=temp.sitecode2);


Message édité par tartiflette75 le 10-03-2006 à 12:19:22

---------------
https://www.entrepreneur-liberte.com
mood
Publicité
Posté le 10-03-2006 à 12:05:00  profilanswer
 

n°1322812
rufo
Pas me confondre avec Lycos!
Posté le 10-03-2006 à 15:22:28  profilanswer
 

ça fait pareil si tu remplaces le != par <>?

n°1322825
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-03-2006 à 15:32:56  profilanswer
 

déjà, dans un "exists", on met toujours "select null" ou "select 1", ça sert à rien de charger des données dans un segment temporaire pour rien.
 
ensuite, vérifie que datetraitement2 et sitecode2 sont bien indexés dans la table "temp" ainsi que dans la table "lignes_cde".
sinon, je ne vois rien qui cloche avec ta requête...
 
ps: MySQL combien? si c'est une version qui supporte les triggers, vu que ton truc ça semble être "je recopie les données de "lignes_cde" dans "lignes_cde_his" avant de les mettre à jour avec les lignes de "temp", je pense qu'un trigger permettrait de faire quelquechose de plus propre (sur "before update" ) tout et ce sertait certainement plus rapide, puisqu'il n'y aurait pas de requête à faire (le trigger va se contenter de faire un insert pour chaque ligne mise à jour, sans devoir aller cherches des données à partir d'autres tables comme ici)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Optimisation d'une requete mysql

 

Sujets relatifs
Fusionner deux bases mysqlpb de requete sur une table vide et une rempli
[MySQL] Requete SQL pour supprimer des enregistrements identiques[XQuery]Problème de requête
[MySQL] Besoin d'aide - Optimisation d'une requête très lourde[MySQL] Optimisation requete sur ENORME table ...
[PHP - MYSQL] optimisation d'une requete[mysql]optimisation d'un requete
[MySQL]optimisation requete[MYSQL PHP] Requete ne renvoyant qu'1 champ, optimisation du code.
Plus de sujets relatifs à : Optimisation d'une requete mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR