/ / Bulk Insert From Select - sql, baza danych, sql-server-2012, bulkinsert

Zbiorcze wstawianie z Select - sql, database, sql-server-2012, bulkinsert

Mam plik tekstowy z około 300 milionami liniiw tym. Robię luzem wstawić plik do tabeli pomostowej w sql. Następnie rozbijam niektóre kolumny, aby je znormalizować, co działa dobrze i szybko. Ostatnim krokiem, który robię, jest przeniesienie wierszy ze stołu pomostowego do ich stołu końcowego. Obecnie wykonuję instrukcję INSERT INTO SELECT, ale trwa to wiecznie. Czy istnieje sposób na wykonanie masowej wstawki z zaznaczenia?

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz użyć kreatora importu / eksportu dostarczonego przez SQL Server Management Studio.

http://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/

Wygeneruje i uruchomi dla ciebie pakiet SSIS, który jest znacznie szybszy i lepszy niż instrukcja INSERT INTO SELECT.


-1 dla odpowiedzi № 2

Możesz dodać równoległe wskazówki do WSTAWIENIA.

Zobacz więcej opcji. Na przykład pamiętaj o wyłączeniu indeksów w tabeli docelowej http://www.dba-oracle.com/t_insert_tuning.htm

Co najważniejsze, możesz faktycznie ustawić ten stół jako ZEWNĘTRZNY. Będzie to szczególnie najlepiej pasowało do Twojej specyfikacji.

Przykładowa składnia:

create table xtern_empl_rpt
( empl_id varchar2(3),
last_name varchar2(50),
first_name varchar2(50),
ssn varchar2(9),
email_addr varchar2(100),
years_of_service number(2,0)
)
organization external

W ten sposób w połączeniu z równoległą wskazówką powinno przyspieszyć twój DML.

insert /*+ parallel */ into tb_b t
select * from xtern_empl_rpt where <<whatever predicate required>>

Źródło: http://www.orafaq.com/node/848