Oracle
 sql >> база данни >  >> RDS >> Oracle

актуализиране на много голяма таблица на оракул

За да избегнете писане в журнала за отмяна на Oracle, ако вашата update изразът удря всеки един ред от таблицата, тогава вероятно е по-добре да изпълните create table as select заявка, която ще заобиколи всички регистрационни файлове за отмяна, което вероятно е проблемът, с който се сблъсквате, тъй като регистрира въздействието върху 60 милиона реда. След това можете да премахнете старата таблица и да преименувате новата таблица с името на старата таблица.

Нещо като:

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;

За справка прочетете някои от съветите тук:http://www.dba-oracle.com /t_efficient_update_sql_dml_tips.htm

Ако всъщност създавате нова таблица, а не просто актуализирате някои от редовете на таблица, това вероятно ще се окаже по-бързият метод.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво е ограничението на размера за аргумент на подпрограма varchar2 PL/SQL в Oracle?

  2. Oracle-Преобразуване на SQL в ANSI SQL

  3. oracle :Име на динамична колона

  4. Каква е разликата между ANSI и не-ANSI съединения и кое препоръчвате?

  5. Има ли най-добрият начин да избегнете изпълнението на процес повече от веднъж в Oracle?