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 :

[Oracle9i] Comment modifier le TableSpace d'un index ?


Sujet :

Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut [Oracle9i] Comment modifier le TableSpace d'un index ?
    bonjour à tous et désolé si la question est sans interet mais je débute en BDD et je galere un petit peu.

    J'ai donc un ensemble de table avec pas mal de contrainte entre elles et je souhaite modifier le tablespace des index de certaines Tables (passer de USER à INDEX). Malheureusement lorsqu'il y a des contraintes associées je ne peux le faire. Je souhaite connaitre les commandes SL qui me permettraient de faire ca, et vers quoi m'orienter

    Merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    pour changer un index de tablespace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter index rebuild tablespace nom_tbs ;

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut
    Tres bien mais ou se trouve le nom de la table concernée ? Ici on ne sait pas quelle est la table sur laquelle on va modifier l'index ? Il y a qqchose que je ne saisis pas ...
    De plus on ne sait pas quelle est la colonne qui e st concernée par cet index ?

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    alors pour connaitre les index de la table , il faut interroger la vue user_indexes .
    Sinon le SQL dynamique t'aidera :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select 'alter index '||index_name || ' rebuild tablespace TBS ; '
    from user_indexes where table_name = upper('&table_name')

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut
    Soit je ne suis pas clair soit je suis un peu con.
    J'ai une table : TABLE,
    elle a un index INDEX qui porte le la colonne COLO et qui est sur le tablspace USER.
    Je veux que INDEX soit sur le tablespace INDEX (et qui doit être toujours sur COLO).
    Comment faire ?
    Merci pour les réponses

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    et pour finir , comment connaitre qu'elle index , sur qu'elle table et sur qu'elle position :

    SELECT table_name , index_name , column_name , column_position FROM user_ind_columns WHERE table_name =UPPER('PS_JOB')
    ORDER BY table_name , index_name , column_position

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par Jibees
    Soit je ne suis pas clair soit je suis un peu con.
    J'ai une table : TABLE,
    elle a un index INDEX qui porte le la colonne COLO et qui est sur le tablspace USER.
    Je veux que INDEX soit sur le tablespace INDEX (et qui doit être toujours sur COLO).
    Comment faire ?
    Merci pour les réponses
    je te laisse juge sur le premier point ,
    encore une fois si ton index INDEX portant sur TABLE et sur le champs COLO dans le TBS USER , un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter index ... rebuild tablespace INDEX
    fait que ton index INDEX sur la table TABLE et sur la champs COL n'est plus dans le TBS USER mais INDEX

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    salut jibees,

    le fait de faire : alter index rebuild tablespace nom_tbs
    comme te l'a dit jaouad ne change pas la définition de ton
    index (col et table sur lequel il porte) mais permet de le reconstruire
    sur un autre tablespace.

    pas vrai jaouad ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut
    Ok super ce que je n'avais pas compris c'est qu'un index est unique ....
    Je te remercie .
    Deniere question toutefois : est-il possible de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter index * rebuild tablespace INDEX
    ?
    Merci,
    Jibé

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    merci beyonder c'est exactement ca

    et puisque un exemple vaut mille discours :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    SQL> select tablespace_name from dba_indexes where index_name ='PS_JOB' ;
     
    TABLESPACE_NAME
    ------------------------------
    PSINDEX
     
    SQL> alter index PS_JOB rebuild tablespace TLWORK_IDX ;
     
    Index modifié.
     
    SQL> select tablespace_name from dba_indexes where index_name ='PS_JOB' ;
     
    TABLESPACE_NAME
    ------------------------------
    TLWORK_IDX
     
    SQL> alter index PS_JOB rebuild tablespace PSINDEX ;
     
    Index modifié.
     
    SQL> select tablespace_name from dba_indexes where index_name ='PS_JOB' ;
     
    TABLESPACE_NAME
    ------------------------------
    PSINDEX

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut
    Ca a en effet le merite d'etre clair. encore une question : comment renommer l'index en question ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter index Ancien_Nom rename to Nouveau_Nom
    ??

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par Jibees
    Ok super ce que je n'avais pas compris c'est qu'un index est unique ....
    Je te remercie .
    Deniere question toutefois : est-il possible de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter index * rebuild tablespace INDEX
    ?
    Merci,
    Jibé
    Jibees , merci de bien lire toutes les réponses

    je t'ai parlé de sql*dynamique un peu plus haut :

    pour tout les index du schéma il faut juste adapté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT 'alter index '||index_name || ' rebuild tablespace TBS ; ' 
    FROM DBA_indexes WHERE owner =user  ; 
     
    ou alors 
     
    SELECT 'alter index '||index_name || ' rebuild tablespace TBS ; ' 
    FROM user_indexes

  13. #13
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par Jibees
    Ca a en effet le merite d'etre clair. encore une question : comment renommer l'index en question ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter index Ancien_Nom rename to Nouveau_Nom
    ??
    là par contre non il faut juste le dropper /re créer

    Cependant juste une remarque , pourquoi veux tu renommer ton index , d'autant plus si tu es mode choose et que tu ne fait pas de hint , le nom n' a aucune importance ....

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

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. Comment modifier un Metafile existant ?
    Par monmien dans le forum Langage
    Réponses: 4
    Dernier message: 09/09/2004, 11h59
  3. [jar] Comment modifier un fichier jar
    Par newfsch dans le forum JBuilder
    Réponses: 5
    Dernier message: 18/07/2004, 14h25
  4. comment modifier une texture?
    Par tibyann dans le forum DirectX
    Réponses: 6
    Dernier message: 16/06/2004, 15h27
  5. [ClassPath] Comment modifier le classpath d'eclipse?
    Par Elmilouse dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/04/2004, 18h32

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