【问题标题】:is SSIS insert bulk the same as a BULK InsertSSIS 批量插入是否与 BULK 插入相同
【发布时间】:2009-05-13 14:17:49
【问题描述】:

我正在使用 SSIS 包(不是我构建的)将 CSV 文件批量插入到 SQL Server 2005 中

我正在运行 SQL Profiler 并看到插入语句为:

insert bulk [dbo].[stage_dht]( ..... )

但是该语句中没有 FROM 子句,所以我很好奇它是如何获取数据的,这种所谓的快速加载是将数据批量写入 SQL 的最佳方式吗?

【问题讨论】:

    标签: sql-server ssis


    【解决方案1】:

    是的,SSIS 批量插入任务使用与 BULK INSERT 命令相同的下划线功能。

    您很可能会在 SQL Profiler 中看到差异,因为 Bulk Insert 任务将直接使用带下划线的 COM 对象(支持批量插入),而不是简单地作为 T-SQL 命令的 GUI 包装器。因此,我猜测它不是指定 FROM ,而是将打开的 IO 流指针传递给 COM 对象。

    批量插入几乎是将大量数据加载到 SQL Server 中的最快方式,因为它在进程内运行,“共享相同的内存地址空间。因为数据文件是由 SQL Server 进程打开的,所以数据不是在客户端进程和 SQL Server 进程之间复制”。1

    但是,如果文件与 SQL Server 是否在同一台机器上,性能会有所不同。

    1About Bulk Import and Bulk Export Operations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多