Abyste se vyhnuli zápisu do protokolu vrácení zpět Oracle v případě update
příkaz zasáhne každý řádek tabulky, pak je pravděpodobně lepší spustit create table as select
dotaz, který obejde všechny protokoly zpět, což je pravděpodobně problém, na který narazíte, protože zaznamenává dopad přes 60 milionů řádků. Potom můžete starou tabulku zrušit a přejmenovat novou tabulku na název staré tabulky.
Něco jako:
create table new_people as
select l.newid,
p.col2,
p.col3,
p.col4,
p.col5
from people p
join id_conversion l
on p.id = l.id;
drop table people;
-- rebuild any constraints and indexes
-- from old people table to new people table
alter table new_people rename to people;
Pro informaci si přečtěte některé tipy zde:http://www.dba-oracle.com /t_efficient_update_sql_dml_tips.htm
Pokud v podstatě vytváříte novou tabulku a ne pouze aktualizujete některé řádky tabulky, bude to pravděpodobně rychlejší metoda.