For at undgå at skrive til Oracles fortryd-log, hvis din update
sætningen rammer hver enkelt række i tabellen, så er du sandsynligvis bedre stillet til at køre en create table as select
forespørgsel, som vil omgå alle fortryd-logfiler, hvilket sandsynligvis er det problem, du støder på, da det logger virkningen på tværs af 60 millioner rækker. Du kan derefter slippe den gamle tabel og omdøbe den nye tabel til den gamle tabels navn.
Noget som:
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;
For reference, læs nogle af tipsene her:http://www.dba-oracle.com /t_efficient_update_sql_dml_tips.htm
Hvis du grundlæggende opretter en ny tabel og ikke bare opdaterer nogle af rækkerne i en tabel, vil det sandsynligvis vise sig at være den hurtigere metode.