0

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

4

2 回答 2

0

您可以使用 SQL Server Management Studio 提供的导入/导出向导。

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

它将为您生成和运行 SSIS 包,这比 INSERT INTO SELECT 语句更快更好。

于 2013-04-18T15:48:33.230 回答
-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

于 2013-04-18T15:53:56.440 回答