Oracle
 sql >> Baza danych >  >> RDS >> Oracle

aktualizacja bardzo dużego stołu wyroczni

Aby uniknąć zapisywania w dzienniku cofania Oracle, jeśli Twoja update instrukcja uderza w każdy wiersz tabeli, wtedy prawdopodobnie lepiej będzie uruchomić create table as select zapytanie, które pominie wszystkie dzienniki cofania, co prawdopodobnie jest problemem, z którym się spotykasz, ponieważ rejestruje wpływ w 60 milionach wierszy. Następnie możesz usunąć starą tabelę i zmienić nazwę nowej tabeli na nazwę starej tabeli.

Coś takiego:

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;

Aby uzyskać więcej informacji, przeczytaj kilka wskazówek tutaj:http://www.dba-oracle.com /t_efficient_update_sql_dml_tips.htm

Jeśli zasadniczo tworzysz nową tabelę, a nie tylko aktualizujesz niektóre wiersze tabeli, prawdopodobnie okaże się to szybszą metodą.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Brakujący artefakt com.oracle:ojdbc6:jar:11.2.0.3

  2. jak wyświetlić wartość liczbową w słowach

  3. JDBC :zwracanie wielu zestawów wyników za pomocą jednego wywołania bazy danych - nie działa w przypadku Oracle

  4. wykonaj natychmiastowe niepokazywanie rekordów instrukcji Dynamic Select

  5. sekwencyjne sumowanie zapytań Oracle na wiersze