• [^] # Re: Une vue

    Posté par (site web personnel) . En réponse au message Optimisation d'une requête SQL ou choix d'un bon SGBD. Évalué à 4.

    bon je suis pas DBA, mais la vue n'améliorerait rien : de mes souvenirs d'Oracle la vue c'est "simplement" une facilité d'écriture, mais en terme d'exécurtion de requête ça fait comme si tu avais encore le select.

    A 1ère vue, avec 51000 lignes dans FACTURE_ELEMENT, ta requête va pour 51000 élément faire un FULL (parcours complet de la table, à cause du not in) dans une table qui fait 51000 lignes (en supposant que tu n'as pas d'index...).

    Donc déjà mettre des index sur tes critères de recherche (quoique...)

    Pour Access je ne sais pas ce que valent les optimisations...

    J'aurais plutôt écrit la requête "à l'endroit" (le not empêche généralement d'utiliser l'index...) :

    (SELECT FACTURE_ELEMENT.REF_ELEMENT from FACTURE_ELEMENT where FACTURE_ELEMENT.FAC > 10000000 and
    FACTURE_ELEMENT.bl in
    ( select FACTURE_ELEMENT.bl from FACTURE_ELEMENT where FACTURE_ELEMENT.fac >= 3000000)
    )

    voire enlever cette deuxième partie : tu ne veux que les factures (après 2000 ET dont le BL a un avoir) d'où
    (SELECT a.REF_ELEMENT from FACTURE_ELEMENT a, FACTURE_ELEMENT b where a.FAC > 10000000 and
    a.bl=b.bl and
    b.fac >= 3000000)
    )

    bon ça risque de pas marcher... ou de pas être équivalent. Bon courage pour te trouver un vrai DBA ;-)