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

SQL Oracle Discussion :

[ORACLE 9I] utilisation d'index et clause exists ou not exists


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut [ORACLE 9I] utilisation d'index et clause exists ou not exists
    Bonjour,

    alors je me posais une question, elle peut paraitre bizarre voire illogique mais dans une requête du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select column_A
    from table1 t
    where exists (select 0 
                       from table2 t2
                       where t1.id = t2.id
                      )
    Si des index existent, est-ce que je px "forcer" oracle a les utiliser ?
    Si oui dans quel select le mettre ?


    Merci du renseignement

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    Tu peux mettre un hint dans la sous requete, la ou tu fais une jointure, mais a priori oracle utilise de lui meme les index disponnibles.

    A moins que table2 soit tres petite et table1 tres grosse, dans ce cas il est preferable d'utiliser IN

  3. #3
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT column_A
        FROM table1 t1
        WHERE EXISTS (SELECT /*+ index(t1 (table1.id)) */ 0 
                           FROM table2 t2
                           WHERE t1.id = t2.id
                      )
    Cordialement,
    Franck.

  4. #4
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    Pachot, le deuxième argument du hint, c'est pas le nom de l'index ?

  5. #5
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Depuis la 10g, c'est soit le nom de l'index, soit entre parenthèse le nom de la colonne:
    http://download.oracle.com/docs/cd/B...6.htm#BABIEJEB
    Pratique car un nom d'index pourrait changer sans qu'on s'en aperçoive.
    Cordialement,
    Franck.

  6. #6
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Cool l'info, c'est clair que c'est toujours lourd de nommer des objets...

    Par contre l'ami qui posait la question est en 9i si j'ai bien lu

  7. #7
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Ah oui, bien vu.

Discussions similaires

  1. Probleme clause NOT EXISTS et NOT IN
    Par Jarod51 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/07/2010, 08h42
  2. Réponses: 1
    Dernier message: 14/10/2008, 12h08
  3. EXISTS et NOT EXISTS
    Par Maljuna Kris dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/09/2007, 10h16
  4. Réponses: 10
    Dernier message: 14/12/2006, 12h53
  5. Utilisation de EXISTS ou NOT EXISTS
    Par lucky31 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2006, 16h43

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