bonjour,
je voudrais savoir comment activer et desactiver un index sous oracle sans le supprimer.
J'ai pensé à faire :
Alter Table
Modify department_id NUMBER(4) PRIMARY KEY DISABLE
Qu'est ce que vou sen pensez?
Merco d'avance
Version imprimable
bonjour,
je voudrais savoir comment activer et desactiver un index sous oracle sans le supprimer.
J'ai pensé à faire :
Alter Table
Modify department_id NUMBER(4) PRIMARY KEY DISABLE
Qu'est ce que vou sen pensez?
Merco d'avance
explique nous le besoin STP... la solution dépendra de celui-ci... et la version d'Oracle :?
Version d'oracle : 10
en fait j'ai une table avec deux index ( clé primaire et clé secondaire)
Cette table je l'utilise dans une procédure stockée. Je voudrais
1) - désactiver les index
2) - Inserer dans la table
3)- Réactiver les index
Voila c'est tout
Merci d'avance
mais pourquoi désactiver les indexes, tu as bien conscience qu'à la réactivation ça va prendre du temps et que pendant l'insertion les mise à jour et sélection seront plus longues ?
oui je sais
mais c'est ce qui est demandé.
As tu une solution?
regarde du coté de UNUSABLE...
je ne comprends pas l'utilisation de UNUSABLE
ALTER INDEX MODIFY TABLE UNUSABLE
en fait UNSABLE utilise les partitions
ALTER TABLE sales MODIFY PARTITION jan97
REBUILD UNUSABLE LOCAL INDEXES;
moi je n'utilisa pas de PARTITION
la désactivation d'index n'est possible qu'à partir de la 11.
avant, il faut dropper/recréer ce qui n'est pas pareil ni aussi souple.
et comment on fait ça sur la 11???
http://download.oracle.com/docs/cd/B...htm#SQLRF00805
(non testé, purement théorique donc ! ;))Code:alter index ... disable
voila à quoi j'ai pensé moi :
Code:
1
2
3
4
5 EXECUTE IMMEDIATE ('alter index TAB UNUSABLE'); EXECUTE IMMEDIATE ('ALTER SESSION SET SKIP_UNUSABLE_INDEXES = TRUE'); appel à la proc stockée EXECUTE IMMEDIATE ('ALTER INDEX TAB REBUILD tablespace SVATEC_I'); EXECUTE IMMEDIATE ('ALTER SESSION SET SKIP_UNUSABLE_INDEXES = FALSE');