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

Oracle Discussion :

probleme d'inex "unusable"


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de magic charly
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut probleme d'inex "unusable"
    Bonjour !

    j'ai un petit soucis d'index et peut être saurez vous m'aider ou tout au moins me donner votre avis sur la question...


    SGBD : Oracle 9.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    create table MESURE_MAIN
    (
      DATE_MES DATE not null,
      VALEUR   FLOAT,
     
      TYPE_MES VARCHAR2(1) not null,
      FREQ_MES VARCHAR2(1) not null,
     
      IDARC    NUMBER not null
    )
     
    alter table MESURE_MAIN
      add constraint I_MM_PK primary key 
     
    (DATE_MES,TYPE_MES,FREQ_MES,IDARC)
      using index
    lorsque je fais des requetes (voir ci dessous) sur ma table j'obtiens l'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * from MESURE_MAIN t where t.date_mes=to_date
     
    (('05/04/2006 13:00:00','dd/mm/yyyy hh24:mi:ss') AND IDARC='643';

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORA-01502: index 'INFOCENTRE.I_MM_PK' or 
    partition of such index is unusable state
    que me conseilleriez vous de faire?

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Dans ce cas, il est conseillé de dropper puis de recréer l'index.

  3. #3
    Membre confirmé Avatar de magic charly
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    cet index est associé à ma clef primaire...
    je ne peux donc pas simplement le dropper sinon j'ai le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cannot drop index used for enforcement of unique/primary key

    je dois enlever les champs concernés de la clé primaire?
    puis droper l'index
    puis les remettre dans la clé ?

    merci pour votre attention

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Plus exactement, voici la procédure à suivre :
    • alter table xxx drop primary key
    • drop index yyy
    • create index yyy
    • alter table xxx add constraint primary key (bla bla bla)
    Voilà !

    @+,
    NicK.

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Il vous faut d'abord supprimer la contrainte PRIMARY KEY de la table avant de pouvoir supprimer et recréer l'index.

  6. #6
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Un index invalide ne nécessite en général qu'un simple rebuild :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER INDEX toto rebuild;
    Attention : ça peut être très long et couteux, mais vu que le votre est inutilisable, vous n'avez pas le choix.

    EDIT : De surcroit, il serait bon de savoir pourquoi l'index n'est pas utilisable. Avez-vous procédez récemment à des opérations qui impactent les RowID (move de table par exemple) ?

  7. #7
    Membre confirmé Avatar de magic charly
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    merci pr votre aide

    j'ai supprimé l'index mais qd je souhaite le recréer il m'indique qu'il y a une incohérence avec la primary key.

    j'ai l'impression que le probleme vient du fait que j'ai des doublons (tous les champs identiques rentrant en contradiction avec la clé primaire)

    j'essaie actuellement de les supprimer en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select t1.idarc, t1.type_mes, t1.freq_mes, t1.valeur, t1.date_mes 
    from mesure_main t1, mesure_main t2
    where (t1.date_mes=t2.date_mes
          AND t1.IDARC=t2.IDARC 
          AND t1.valeur=t2.valeur
          AND t1.FREQ_mes=t2.freq_mes
          AND t1.type_mes=t2.type_mes
         AND t1.rownum <> t2.rownum
    )
          ;
    mais la seule chose qui distingue deux enregistrments est le numéro de ligne comment invoquer cette information?

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

Discussions similaires

  1. [CKEditor] probleme d'image; ajout de quot lors d'insertion d'image
    Par dedel53 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 28/10/2007, 00h05
  2. Probleme avec encodage de simple quote
    Par linkowich dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 13h16

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