Bonjour,

J'effectue un update sur une table en utilisant l'instruction FORALL.

Les valeurs de clauses sont définies dans des collections.

Je fais

FORALL i in tab1.First..tab1.Last
update table set champ=1
where condition1 = tab1(i);

A noter que le tableau tab1 comporte 1 800 000 occurrences.

Lorsque j'exécute l'ordre via SQLPlus j'obtiens un temps de 1 minute.

Lorsque l'ordre est exécuté dans un batch, il prend au moins 7 heures avec un volume de buffer reads de 50 000 000 !.

Quelqu'un pourrait-il me donner un tuyau sur l'origine du problème et de sa solution ?