bonjour,
j'ai une petite question Oracle ou SQL...
J'ai une table OPERATION
OPE_ID ##### OPE_DATE ##### OPE_PRECEDENTE
1 ######## 29/10/10 ######## NULL
2 ######## 29/10/10 ######## NULL
3 ######## 29/10/10 ######## 2
4 ######## 29/10/10 ######## 1
5 ######## 29/10/10 ######## 4
OPE_ID : clé primaire
OPE_PRECEDENTE : foreign key sur la clé primaire OPE_ID
J'ai une requête qui a 38000 enregistrements à supprimer de cette table OPERATION.
Nous avons testé sur une base iso-prod en désactivant la contrainte (foreign key FK_OPE_PRECEDENTE) de cette table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Delete from operation where ope_id in (select ope_id from extr_id_arc_pur);
Le temps d'exécution est de 3min.
Nous avons réactivé cette contrainte et réimporter les données de la base et le temps d'exécution est > 6 heures.
Cette colonne OPE_PRECEDENTE peut avoir des valeurs null.
Il y a un index sur cette colonne.
J'aurai voulu savoir s'il est possible que cette contrainte puisse faire ralentir les perfs ? A chaque delete, Oracle que fait-il ? il contrôle les foreign key ?
Autre chose, après le re-import de la base, doit-on recalculer les statistiques oracle ?
En espérant avoir été clair!!!
Merci d'avance.
Partager