För att undvika att skriva till Oracles ångralogg om din update
uttalandet träffar varje enskild rad i tabellen så är det troligtvis bättre att köra en create table as select
fråga som kommer att kringgå alla ångra loggar, vilket troligen är problemet du stöter på eftersom det loggar effekten över 60 miljoner rader. Du kan sedan släppa den gamla tabellen och byta namn på den nya tabellen till den gamla tabellens namn.
Något i stil med:
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;
För referens, läs några av tipsen här:http://www.dba-oracle.com /t_efficient_update_sql_dml_tips.htm
Om du i princip skapar en ny tabell och inte bara uppdaterar några av raderna i en tabell kommer det sannolikt att vara den snabbare metoden.