sql >> Databáze >  >> RDS >> Oracle

aktualizaci velmi rozsáhlé tabulky Oracle

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.



  1. Aktualizace MYSQL pomocí výsledku sum() ve více tabulkách

  2. Správce ODBC nemůže najít soubor názvů Oracle TNS

  3. Vícerozměrné pole PHP z výsledku mysql

  4. Unkillable Oracle session čekající na SQL*Net zprávu z události klienta