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

Масово вмъкване на Oracle с помощта на SQL Developer

SQL*Loader е любимият ми начин за групово зареждане на големи обеми данни в Oracle. Използвайте опцията за вмъкване на директен път за максимална скорост, но разбирайте въздействието на натоварванията по директен път (например всички данни се вмъкват след знака за висока вода, което е добре, ако съкратите таблицата си). Той дори има толерантност към лоши редове, така че ако вашите данни имат "някои" грешки, те пак могат да работят.

SQL*Loader може да спре индексите и да ги изгради всички в края, което прави груповото вмъкване много бързо.

Пример за извикване на SQL*Loader:

$SQLDIR/sqlldr /@MyDatabase direct=false silent=feedback \
    control=mydata.ctl log=/apps/logs/mydata.log bad=/apps/logs/mydata.bad \
    rows=200000

И mydata.ctl би изглеждал по следния начин:

LOAD DATA
INFILE '/apps/load_files/mytable.dat'
INTO TABLE my_schema.my_able
FIELDS TERMINATED BY "|"
 (ORDER_ID,
  ORDER_DATE,
  PART_NUMBER,
  QUANTITY)

Като алтернатива... ако просто копирате цялото съдържание на една таблица в друга, в бази данни, можете да направите това, ако вашият DBA настрои DBlink (процес от 30 секунди), като се предполага, че вашата DB е настроена с пространството за повторение за постигнете това.

truncate table my_schema.my_table;

insert into my_schema.my_table
select * from [email protected]_remote_db;

Използването на /* +append */ намек все още може да използва вмъкване на директен път.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да конфигурирам местоположението на моя файл tnsnames на Oracle?

  2. Oracle LIMIT и ограничение от 1000 колони

  3. Oracle Text няма да работи с NVARCHAR2. Какво друго може да не е налично?

  4. Накарайте марионетната компилация да се провали, когато съдържащият се SQL скрипт не се изпълни

  5. Oracle Комбинирайте няколко колони в една