从Select中批量插入

时间:2013-04-18 15:44:34

标签: sql database sql-server-2012 bulkinsert

我有一个包含大约3亿行的文本文件。我正在进行批量插入以将文件放入sql中的临时表中。然后我打破了一些列来规范它,它工作得很好而且很快。我做的最后一步是将行从登台表移到最终表。目前我正在进行INSERT INTO SELECT语句,但这是永远的。有没有办法从select中进行批量插入?

2 个答案:

答案 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>>

来源:http://www.orafaq.com/node/848