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.
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);
Nous avons testé sur une base iso-prod en désactivant la contrainte (foreign key FK_OPE_PRECEDENTE) de cette table.

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.