IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[10gR1] équivalence de 2 constructions dynamique de requêtes


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [10gR1] équivalence de 2 constructions dynamique de requêtes
    Bonjour,

    Dans un écran développé sous forms 9i, j'écris et exécute des requêtes construites dynamiquement.
    Pour (me) simplifier la construction dynamique des requêtes, j'envisage de passer de la 1ère construction qui suit à la 2ème.

    Voici la 1ère construction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT ...
    FROM   A
    WHERE  A.x = '...'
    [...] -- filtres sucessifs par des clauses AND
    AND    EXISTS ( SELECT *
                    FROM   B
                    WHERE  A.j = B.j )
    Et la 2ème construction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT ...
    FROM   A
    WHERE  EXISTS ( SELECT *
                    FROM   B
                    WHERE  A.j = B.j
                    AND    A.x = '...'
                    [...] -- filtres sucessifs par des clauses AND
                  )
    Nous sommes d'accord avec mes collègues pour dire que ces 2 constructions retournent les mêmes données (même nombre de lignes et lignes identiques) mais une de mes collègues prétend que dans la 2ème construction s'il existe un index sur la colonne x alors il ne sera pas utilisé contrairement à la 1ère construction.

    J'aimerais donc savoir si les résultats seront les mêmes :
    - en terme contenu (même nombre lignes retournées et lignes identiques)
    - en terme de performances

  2. #2
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Sur le principe, je serais assez d'accord avec ta collegue, la premiere construction semble plus naturelle. sur la 2ieme c'est un peu bizarre de mettre un filtre concertant la table A dans le bloc concernant la table B... cependant je crois qu'oracle doit faire l'équivalence, pour en avoir le coeur net, une seule chose à faire: editer le plan d'exécution

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par remi4444
    cependant je crois qu'oracle doit faire l'équivalence, pour en avoir le coeur net, une seule chose à faire: editer le plan d'exécution
    Hello Rémi,

    Je suis d'accord et je pourrais faire le test mais un exemple n'est pas une preuve.
    Donc ce n'est pas parce qu'en choisissant certaines clauses AND qui filtreraient mes données et en constatant que les plans d'exécution sont identiques sur cet exemple que je pourrais en déduire que c'est le cas pour toute conversion de la 1ère construction vers la 2ème.

    Enfin, ce que ma collègue dit, c'est que dans le 2ème cas, s'il existe un index sur la colonne X alors :
    - il sera utilisé dans la 1ère construction
    - il NE sera PAS utilisé dans la 2ème construction
    ça par contre je peux le tester...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2005] Procédure stockée avec construction dynamique de requête
    Par droliprane dans le forum Développement
    Réponses: 13
    Dernier message: 25/11/2014, 16h48
  2. [MySQL] Construction dynamique d'une requête
    Par rinuom99 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/03/2008, 21h00
  3. Récupérer valeur contrôle en dynamique via requête
    Par nicburger dans le forum Access
    Réponses: 10
    Dernier message: 15/09/2005, 15h41
  4. Problème pour la construction d'un requête
    Par TshAw dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/02/2005, 17h35
  5. [JTree] Construction dynamique
    Par raj dans le forum Composants
    Réponses: 7
    Dernier message: 09/12/2004, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo