|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 92 ![]() |
Bonjour à tous,
je sollicite votre aide sur un probleme de lock sur une table suite à un alter constraint. J'ai une table de 13Go avec des millions de ligne dans laquelle je dois modifier des codes. sur cette table j'ai une contrainte que je désactive pour effectuer ma mise à jour Une fois ma mise à jour effectuée, je réactive la contrainte. Or la réactivation de cette contrainte prend environ 3h et pendant ces 3 heures ma table est locké. pour mon client, il est hors de question que l'activité soit bloquée pendant ces 3h (7/7 h24) Avez vous deja ete contronté à ce genre de probleme et quelle solution pourrions nous apporter ? Merci de votre aide |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
c'est le vérification de l'intégrité de la contrainte qui prend du temps.
Il me semble que tu peux réactiver la contrainte sans vérification des données déjà présente, un option NOCHECK. Va voir dans la doc.
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
00
|
|
|
#3 | |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 92 ![]() |
Citation:
je n'ai pas trouvé l'option NOCHECK avec le alter constraint je l'ai seulement trouver avec le create table whith nocheck add constraint Donc ce que je pense faire, c est - de complètement supprimer ma contraint - faire mes maj - ajouter ma contraint a la table avec un nocheck vous en pensez quoi ? |
|
|
|
10
|
|
|
#4 | |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Citation:
Suppression de la contrainte / MÀJ / Recréation de la contrainte avec NOCHECK !
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() Franck PachotDBA Oracle Inscription : novembre 2007 Messages : 703 ![]() |
Bonjour,
C'est NOVALIDATE qui permet d'activer une contrainte sans vérifier les données existantes. Et si tu est sur que la contrainte n'est pas violée par tes modifications, tu peux ajouter RELY pour que l'optimiseur puisse se fier à la contrainte. Cordialement, Franck.
__________________
A lire sur mon blog Oracle - Articles d'Experts des articles traduits en français de Jonathan Lewis, Tom Kyte, Doug Burns, Cary Millsap, Greg Rahn ...
|
|
00
|
|
|
#6 | |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 92 ![]() |
Citation:
En fait au moment ou je desactive ma contrainte je suis sur qu elle n'est pas violé. De même au moment ou je voudrais la réactiver, je serai sur que mes données seront aussi cohérente (du moins je tâcherais qu'elle le soit) A ce moment la, je peux donc faire un enable novalidate ? Par contre pour l'option RELY, je n'ai pas tres bien compris en quoi il agit ? Merci pour ton aide |
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() Franck PachotDBA Oracle Inscription : novembre 2007 Messages : 703 ![]() |
Oui c'est ça.
RELY c'est pour que tu garantisse à Oracle que la contrainte n'est pas violée, et qu'il peut en tenir compte pour ses optimisations.
__________________
A lire sur mon blog Oracle - Articles d'Experts des articles traduits en français de Jonathan Lewis, Tom Kyte, Doug Burns, Cary Millsap, Greg Rahn ...
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 92 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com