Forcer l'ordre de la clause where SQL

Bonjour,

Je souhaite forcer l'ordre de mes critères (clause where) de restriction de ma requete sql car la plan d'éxecution n'est pas celui souhaité :

Exemple

SELECT distinct
E.EI_ID
T.RI_ID
...
...
...
...

FROM
EDE E, TITRE T
WHERE E.EI_ID=L.MI_ID
AND E.EI_ID=T.RI_ID
AND E.CI_ID='P'
AND (E.DATE_ID> to_date(01/01/1900' , 'DD/MM/YYYY'))

Je souhaite que sql commence par la troisième clause et ensuite la 2 eme et enfin la première
existe t-il des options à ajouter à ma requête pour qu'elle s'éxecute dans le le sens souhaité
Merci bcp
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. excuse moi mais de toute façon SQL va executer les 3 clauses alors je comprends pas bien ce que tu cherches à faire...
    1
    1. Modérateur
      Salut,

      as-tu essayé de mettre ta date avant la jointure ?

      Es-tu sur un SQL qui te permet l'explain, parce que si ça se trouve, c'est déjà optimisé ?
      0
      1. EXPLAIN PLAN commence par la jointure
        même en mettant la date en premier critère dae la clause
        0
        1. Modérateur
          Et une sous-requête qui ferait déjà la restriction sur la date en source de tes tables ?
          0
          1. Oui pourquoi pas
            mais il parait qu'il existe un moyen pour forcer les clauses de restriction dans le where
            merci bcp pour tes idées
            0
            1. Modérateur
              Je serais curieux de savoir d'où tu sors cette info, et si c'est vrai, sur quel SQL cela s'applique...
              0
          2. oui mais je souhaite forcer l'ordre pour que le traitement se deroule plus vite
            si on commence par le 3eme critere (la date supérieur à une date) on a deja bien balayée la table
            ensuite ce qui reste à faire se deroulera plus vite
            Au contraire, si on commence par la jointure : ya bcp de données à analyser
            -1