Bonjour,

J'ai une table très volumineuse (plusieurs centaines de millions de lignes).

Je souhaite supprimer les lignes selon un critère, qui est le premier membre de la PK (un select count(*) avec un critère sur le champ est très rapide).

Ca donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
delete msk where codsoc = 100;
Sauf que ça représente environ 95% des lignes de la table, donc c'est particulièrement volumineux.
=> Explosion du rollback segment et tout le tralala.

Outre demander au DBA d'agrandir le tablespace temporaire, ou faire plusieurs requêtes avec un critère plus significatif, existe-t-il une option permettant de dire à Oracle "ben pour une fois, cette requête, tu la gères pas en transaction" ?

En bref, faire un truncate avec une clause where.