|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 9 ![]() |
Quelle est la syntaxe pour désactiver et ré-activer un index sur une table Oracle?
|
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
Un index ou une contrainte ?
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
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
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 9 ![]() |
c'est un index et non une contrainte
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 9 ![]() |
Il faut donc que j'exécute la syntaxe suivante pour le désactiver:
ALTER INDEX monIndex UNUSABLE; et pour le réactiver? |
|
|
00
|
|
|
#6 | |
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Citation:
Nicolas. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 9 ![]() |
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? |
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Merci d'être plus explicite et de donner un example. De quel type d'index s'agit-il ?
Nicolas. |
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 9 ![]() |
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.
|
|
|
00
|
|
|
#10 | |
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Citation:
De plus, une FK est une contrainte, tu ne peux pas la désactiver comme une simple index. Nicolas. |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
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
|
|
|
00
|
|
|
#12 | |
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Citation:
Nicolas. |
|
|
00
|
|
|
#13 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
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 ! |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
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
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com