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 :

Création index fonctionnel


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 49
    Par défaut Création index fonctionnel
    Bonjour tout le monde,
    voila je suis en train de reprendre du code et j aurais besoin de creer, si cela est possible, un index fonctionnel sur un decode, probleme comment identifier dans dans le create index le parametre.
    Je m explique, j ai du code qui suivant un parametre doit etre sur une colonne ou une autre, pour cela il me faut utiliser un decode, mais probleme du coup l index n est plus utilise..... La solution actuelle est un execute immediat mais du coup le code est illisible.
    Pour faire simple avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decode(v_param, 'chp1', chp1, 'chps', chp2)='titi'
    Est il possible d utiliser un index ?

    J espere que je suis assez clair, si non n hesitez pas me questionner.
    Cordialement
    LoKi

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Version d'oracle ?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 49
    Par défaut
    9.2.0.5

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Tu peux plutôt essayer quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select *
    from t1
    where (v_param = 'chp1' and chp1 = 'titi')
      or (v_param = 'chp2' and chp2 = 'titi')
    Après il faudrait avoir ta requête dans sa globalité, ainsi que le plan d'exécution pour être plus pertinent...

  5. #5
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 49
    Par défaut
    Merci de la solution,
    pour preciser un peu, la requete est deja super lourde et je ne veux pas l alourdir encore en lecture, c est pour cela que je ne souhaite pas utiliser cette solution.
    Pour le moment je contourne le probleme en creant deux index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    decode('chp1', 'chp1', chp1, 'chps', chp2)
    decode('chp2', 'chp1', chp1, 'chps', chp2)
    Ca a l air de fonctionner mais heureusement qu il n y a que deux valeurs
    LoKi

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par loki8 Voir le message
    Merci de la solution,
    pour preciser un peu, la requete est deja super lourde et je ne veux pas l alourdir encore en lecture, c est pour cela que je ne souhaite pas utiliser cette solution.
    Pour le moment je contourne le probleme en creant deux index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    decode('chp1', 'chp1', chp1, 'chps', chp2)
    decode('chp2', 'chp1', chp1, 'chps', chp2)
    Ca a l air de fonctionner mais heureusement qu il n y a que deux valeurs
    LoKi
    Je ne comprends pas comment le code que tu as posté fonctionne. Peux tu nous fournir un exemple ?
    Pense tu qu’avoir deux index pour résoudre ce type de problème est quelque chose de vraiment envisageable ?

Discussions similaires

  1. [SQL] Création index thématique
    Par mioke dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/03/2008, 17h11
  2. Temps de création index table InnoDB trop long
    Par ctobini dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 22/02/2008, 09h23
  3. Comment optimiser requête SQL avec création Index
    Par schumi101 dans le forum SQL
    Réponses: 25
    Dernier message: 11/12/2007, 21h28
  4. [ORA-01652:] création index
    Par Filippo dans le forum Administration
    Réponses: 8
    Dernier message: 18/05/2007, 16h13
  5. [Oracle 8i] Export Script de création Index
    Par Bahan dans le forum Import/Export
    Réponses: 8
    Dernier message: 29/01/2007, 17h06

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