我正在使用SSIS包(不是由我构建)将CSV文件批量插入到SQL Server 2005中
我正在运行SQL事件探查器,并将insert语句看作:
insert bulk [dbo].[stage_dht]( ..... )
但是该语句中没有FROM子句,所以我很好奇它是如何获取它的数据的,这就是所谓的快速加载是将数据批量转换为SQL的最佳方法吗?
答案 0 :(得分:4)
是的,SSIS批量插入任务使用与BULK INSERT命令相同的下划线功能。
您很可能会看到SQL事件探查器的差异,因为批量插入任务将直接使用下划线COM对象(为批量插入提供动力),而不是简单地作为T-SQL命令的GUI包装器。因此,我猜测它将一个开放的IO流指针传递给COM对象,而不是指定FROM。
批量插入几乎是将大量数据加载到SQL Server中的最快方法,因为它在进程中运行,“共享相同的内存地址空间。因为数据文件是由SQL Server进程打开的,所以数据不是在客户端进程和SQL Server进程之间复制“。1
但是,如果文件与SQL Server在同一台计算机上,性能会有所不同。