sql >> Database >  >> RDS >> Oracle

een zeer grote orakeltabel bijwerken

Om te voorkomen dat u schrijft naar het logboek voor ongedaan maken van Oracle als uw update statement elke rij van de tabel raakt, dan kunt u waarschijnlijk beter een create table as select uitvoeren query die alle logboeken voor ongedaan maken omzeilt, wat waarschijnlijk het probleem is dat u tegenkomt omdat het de impact registreert over 60 miljoen rijen. Je kunt dan de oude tafel laten vallen en de nieuwe tafel hernoemen naar de naam van de oude tafel.

Iets als:

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;

Lees ter referentie enkele van de tips hier:http://www.dba-oracle.com /t_efficient_update_sql_dml_tips.htm

Als je in feite een nieuwe tabel aan het maken bent en niet alleen enkele rijen van een tabel bijwerkt, zal dit waarschijnlijk de snellere methode blijken te zijn.



  1. Converteer 'datetime' naar 'time' in SQL Server (T-SQL-voorbeelden)

  2. Gegevens koppelen aan of importeren uit Salesforce

  3. Kan een MYSQL-back-up niet terugzetten naar een nieuwe database

  4. Zoek naar een gegeven string in alle velden van een heel schema voor Oracle