oracle : delete infini ...

oracle : delete infini ... - SQL/NoSQL - Programmation

Marsh Posté le 02-02-2006 à 09:57:44    

bonjour,
 
je fais un "DELETE FROM matable", mais pour supprimer seulement 200 000 tuples, oracle semble bloqué et ne parvient pas à supprimer. Sous sqlplus, j'ai réussi une fois, mais cela m'a pris 10 minutes. . .
 
La base est peut être trop utilisée , alors comment voir les utilisateurs qui l'utilisent ?
 
Quelqu'un a-t-il une idée du problème ?

Reply

Marsh Posté le 02-02-2006 à 09:57:44   

Reply

Marsh Posté le 02-02-2006 à 10:44:18    

Quand tu fais un DELETE les données passent par le rollback segment, c'est pour ca que c'est très long avec beaucoup d'enregistrement. Utilises plutot  TRUNCATE TABLE, mais attention, impossible de faire un rollback après.

Reply

Marsh Posté le 02-02-2006 à 10:52:57    

merci de ta réponse tres claire.
 
je vais donc essayer le TRUNCATE.
 
merci!

Reply

Marsh Posté le 02-02-2006 à 13:55:30    

Gare aux contraintes DELETE CASCADE aussi :)

Reply

Marsh Posté le 02-02-2006 à 15:48:46    

zut, j'arrive à "truncater" ma table qui en relie deux autres,
mais une table qui n'a pas de clé externe ne peut pas etre tronquée :
 
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
 
alors que c'est pas vrai, il n'y a Aucune ligne dans LA table qui utilise l'identifiant de cette derniere...

Reply

Marsh Posté le 02-02-2006 à 15:49:47    

mais un DELETE (en 15mn) marche ... c un peu long ...

Reply

Marsh Posté le 06-02-2006 à 17:26:16    

tu désactives les foreign keys avant de faire le truncate sinon et tu réactive après !

Reply

Marsh Posté le 06-02-2006 à 18:13:24    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed