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 :

Désactiver des indexes


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Désactiver des indexes
    Quelle est la syntaxe pour désactiver et ré-activer un index sur une table Oracle?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Points : 95
    Points
    95
    Par défaut
    Un index ou une contrainte ?

  3. #3
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Pour désactiver un index, voir l'option UNUSABLE de ALTER INDEX; pour le réactiver, il faut le reconstruire: ALTER INDEX dans SQL Reference

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    c'est un index et non une contrainte

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Il faut donc que j'exécute la syntaxe suivante pour le désactiver:
    ALTER INDEX monIndex UNUSABLE;

    et pour le réactiver?

  6. #6
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par panel
    Il faut donc que j'exécute la syntaxe suivante pour le désactiver:
    ALTER INDEX monIndex UNUSABLE;

    et pour le réactiver?
    Comme l'a dit Pierre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER INDEX indexname REBUILD
    Nicolas.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    J'ai désactivé et réactivé mes indexes avec les bonnes syntaxes c'est tout bon.
    maintenant mon problème est le suivant: comme j'ai une table qui a beaucoup d'enregistrements (plus de 15'000'000), lorsque je fais un INSERT ça va long, alors j'ai pensé qu'en désactivant les indexes cela irait plus vite, mais cela ne fonctionne pas car j'ai des messages d'erreurs Oracle qui me disent que mes indexes sont désactivés, alors coment faire?

  8. #8
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Merci d'être plus explicite et de donner un example. De quel type d'index s'agit-il ?

    Nicolas.

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    J'ai une table RESULTATS qui contient tous les résultats d'un ménage (Table MENAGES). Sur la table RESULTATS j'ai comme FK la PK de la table MENAGES. Quand je désactive l'index sur la FK de la table RESULTATS et que je tente de faire un INSERT dans cette table RESULTATS Oracle me signale une erreur.

  10. #10
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par panel
    J'ai une table RESULTATS qui contient tous les résultats d'un ménage (Table MENAGES). Sur la table RESULTATS j'ai comme FK la PK de la table MENAGES. Quand je désactive l'index sur la FK de la table RESULTATS et que je tente de faire un INSERT dans cette table RESULTATS Oracle me signale une erreur.
    Quelle erreur ? Merci de coller le message.
    De plus, une FK est une contrainte, tu ne peux pas la désactiver comme une simple index.

    Nicolas.

  11. #11
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Je ne comprends pas... les FK peuvent être désactivées sans aucun problème au contraire... par contre, gare à l'intégrité des données sans la FK

  12. #12
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par Fred_D
    Je ne comprends pas... les FK peuvent être désactivées sans aucun problème au contraire... par contre, gare à l'intégrité des données sans la FK
    Oui, tu as raison, et la syntaxe n'est bien entendu pas celle des index, voici le lien vers la doc : Changing the State of a Constraint

    Nicolas.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Points : 95
    Points
    95
    Par défaut
    Tu veux peut-être parler d'un FK qui référence une PK. Dans ce cas si tu veux rendre inusable la PK, disable la contrainte et pète l'index.

    Je ne comprends par très bien l'idée d'un index sur une FK !

  14. #14
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    L'intérêt d'avoir une index sur une clé étrangère consiste à limiter le verrouillage sur la table enfant: extrait du Oracle® Database Performance Tuning Guide

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

Discussions similaires

  1. Désactivation/réactivation des index
    Par fetano dans le forum Oracle
    Réponses: 0
    Dernier message: 25/08/2014, 01h17
  2. Désactivation des index et mysqldump
    Par ctobini dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/02/2008, 18h27
  3. activer ou désactiver des items d'un menu
    Par gcore dans le forum Composants
    Réponses: 3
    Dernier message: 08/06/2004, 14h07
  4. Réponses: 4
    Dernier message: 16/03/2004, 14h16
  5. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 15h11

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