Optimiser une requete

Résolu
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008
-
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008
-
Salut,

Pouvez-vous me dire ce qu'il faut faire pour optimiser une requete par exemple je sais que si on fait souvent des recherches via une colonnes (sur deux tables une jointure en gros  et bien c'est bien de faire un tri sur la table avant)

En plus de cela, j'ai une requete a optimiser ca me prend plus de 5 minutes pour la faire !!!!:
Pour donner a peu pres les quantité MM_LIGNE possede 91 000 lignes et MM_DOUBLON en possede 6 000
le but étant d'effacer dans MM_LIGNE, tout ce qui est présent dans la table MM_DOUBLON!

DELETE
  FROM MM_LIGNE
 WHERE CUST_ID IN (
 SELECT t2.CUST_ID
  FROM MM_DOUBLON t2)
   AND BANK_ACCOUNT_NUM IN (
 SELECT t2.BANK_ACCOUNT_NUM
  FROM MM_DOUBLON t2
  , MM_LIGNE t1)
   AND DD_AMT_BASE_TXT IN (
 SELECT t2.DD_AMT_BASE_TXT
  FROM MM_DOUBLON t2
  , MM_LIGNE t1)
   AND ITEM IN (
 SELECT t2.ITEM
  FROM MM_DOUBLON t2
  , MM_LIGNE t1)
   AND DD_ID IN (
 SELECT t2.DD_ID
  FROM MM_DOUBLON t2
  , MM_LIGNE t1)
   AND BANK_CD2 IN (
 SELECT t2.BANK_CD2
  FROM MM_DOUBLON t2
  , MM_LIGNE t1)
   AND BRANCH_ID IN (
 SELECT t2.BRANCH_ID
  FROM MM_DOUBLON t2
  , MM_LIGNE t1)

Merci,

++

"Aucun de nous ne sait ce que nous savons tous, ensemble." Lao Tseu inventeur du "copier coller" [8D]

2 réponses

Messages postés
259
Date d'inscription
mercredi 3 mai 2006
Statut
Modérateur
Dernière intervention
11 janvier 2010
7
Une requête comme celle-ci devrait faire l'affaire :


DELETE FROM MM_LIGNE
WHERE EXISTS(
   SELECT * FROM MM_DOUBLON WHERE MM_LIGNE.ChampA =  MM_DOUBLON.ChampA
    AND MM_LIGNE.ChampB =  MM_DOUBLON.ChampB)

Dans le Where de la requête du EXISTS on met la liste de tous les champs à comparer entre les 2 tables...

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008

Ca marche je gagne 20s c'est pas grand chose mais je continue des test voir si je peut faire mieux


Merci de ton aide

"Aucun de nous ne sait ce que nous savons tous, ensemble." Lao Tseu inventeur du "copier coller" [8D]