Bonjour à tous,

Je suis dans un code JAVA et j'effectue des suppressions qui peuvent être dans certains cas, massives, c'est-à-dire environ 500 000 enregistrements.

De plus pour connaître les éléments à supprimer je fais une liaison de toutes les clés primaire dans une table temporaire.

Ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
DELETE FROM 
(SELECT A.SOURCE FROM ARTICLE A, TMP_BATCH_EXTRACTION B 
WHERE A.SOURCE=B.ID)
ou
DELETE FROM ARTICLE 
WHERE ID IN (SELECT ID FROM TMP_BATCH_EXTRACTION)
Le problème arrive lorsqu'il y a plus de 200 000 enregistrements çà devient extrèmement long (~10mn).
J'ai essayé de découper les requêtes de suppression en faisant ROWNUM < 100 000 mais cela n'a pas l'air de changer grand chose (j'ai cru).

Alors avez-vous une idée pour pouvoir supprimer des enregistrements en masse ?

En vous remerciant d'avance.

Cordialement
Boutss