Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/02/2007, 10h27   #1
Invité de passage
 
Inscription : mai 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 9
Points : 3
Points : 3
Par défaut Désactiver des indexes

Quelle est la syntaxe pour désactiver et ré-activer un index sur une table Oracle?
panel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 12h04   #2
Membre régulier
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 85
Points : 85
Un index ou une contrainte ?
Harry Potter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 12h13   #3
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 12h30   #4
Invité de passage
 
Inscription : mai 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 9
Points : 3
Points : 3
c'est un index et non une contrainte
panel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 12h34   #5
Invité de passage
 
Inscription : mai 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 9
Points : 3
Points : 3
Il faut donc que j'exécute la syntaxe suivante pour le désactiver:
ALTER INDEX monIndex UNUSABLE;

et pour le réactiver?
panel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 12h43   #6
Membre expérimenté

 
Avatar de NGasparotto
 
Nicolas Gasparotto
Inscription : janvier 2007
Messages : 424
Détails du profil
Informations personnelles :
Nom : Nicolas Gasparotto

Informations forums :
Inscription : janvier 2007
Messages : 424
Points : 500
Points : 500
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 :
ALTER INDEX indexname REBUILD
Nicolas.
NGasparotto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 14h35   #7
Invité de passage
 
Inscription : mai 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 9
Points : 3
Points : 3
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?
panel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 14h38   #8
Membre expérimenté

 
Avatar de NGasparotto
 
Nicolas Gasparotto
Inscription : janvier 2007
Messages : 424
Détails du profil
Informations personnelles :
Nom : Nicolas Gasparotto

Informations forums :
Inscription : janvier 2007
Messages : 424
Points : 500
Points : 500
Merci d'être plus explicite et de donner un example. De quel type d'index s'agit-il ?

Nicolas.
NGasparotto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 14h45   #9
Invité de passage
 
Inscription : mai 2004
Messages : 9
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 9
Points : 3
Points : 3
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.
panel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 14h59   #10
Membre expérimenté

 
Avatar de NGasparotto
 
Nicolas Gasparotto
Inscription : janvier 2007
Messages : 424
Détails du profil
Informations personnelles :
Nom : Nicolas Gasparotto

Informations forums :
Inscription : janvier 2007
Messages : 424
Points : 500
Points : 500
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.
NGasparotto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h34   #11
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h51   #12
Membre expérimenté

 
Avatar de NGasparotto
 
Nicolas Gasparotto
Inscription : janvier 2007
Messages : 424
Détails du profil
Informations personnelles :
Nom : Nicolas Gasparotto

Informations forums :
Inscription : janvier 2007
Messages : 424
Points : 500
Points : 500
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.
NGasparotto est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h52   #13
Membre régulier
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 85
Points : 85
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 !
Harry Potter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 17h46   #14
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h25.


 
 
 
 
Partenaires

Hébergement Web