我有一个包含大约3亿行的文本文件。我正在进行批量插入以将文件放入sql中的临时表中。然后我打破了一些列来规范它,它工作得很好而且很快。我做的最后一步是将行从登台表移到最终表。目前我正在进行INSERT INTO SELECT语句,但这是永远的。有没有办法从select中进行批量插入?
答案 0 :(得分:0)
您可以使用SQL Server Management Studio提供的导入/导出向导。
http://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/
它将为您生成并运行SSIS包,这比INSERT INTO SELECT语句更快更好。
答案 1 :(得分:-1)
您可以向INSERT添加并行提示。
查看更多选项。就像确保禁用目标表上的任何索引一样 http://www.dba-oracle.com/t_insert_tuning.htm
最重要的是,您实际上可以将此表设为EXTERNAL表。这将特别适合您的规格。
语法示例:
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
这样与并行提示相结合可以加速你的DML。
insert /*+ parallel */ into tb_b t
select * from xtern_empl_rpt where <<whatever predicate required>>