将大量记录插入SQL Server数据库的最快方法是什么?

esa*_*sac 3 c# sql database insert

我需要将从磁盘读取的数百万条记录插入SQL服务器.我正在一台机器上的文件中解析这些,这是一个单线程进程.

理想情况下,如果SQL服务器是本地或远程,我希望它能够很好地运行.它必须在C#中以编程方式完成.

Rem*_*anu 8

最快的方法是使用SSIS进行并行读取,NUMA关联客户端,分区写入并在最后将所有分区切换到单个表中.这将使您每小时加载超过2 TB.

如果您有合适的文本文件,那么可能是批量复制实用程序.

如果要从进程插入,则可以使用SqlBulkCopy.WriteToServer,但必须将数据显示为IDataReader,或者可以使用straigh SqlCommand插入.稍后,如果您批量插入提交,您将获得良好的trhoughput.通常的瓶颈是单个语句提交上的日志刷新.