我正在使用sqlcmd运行SQL文件,它将许多行插入到MS SQL server (2008 R2)中,执行批量插入将是最佳的,但数据文件对于SQL server可能无法访问。
在MS SQL server2008 R2上,还有哪些其他方法或选项可以(非常)快速地执行插入?
发布于 2011-05-28 21:40:50
最终编写了一个使用System.Data.SqlClient.SqlBulkCopy的自定义C#应用程序。还将包含数据的SQL文件替换为System.Data.DataTable.WriteXml生成的XML文件,这些文件稍后可以通过ReadXml导入并直接用于SqlBulkCopy。
这个解决方案大约比使用普通的INSERT快10倍,比使用每个1000行的inserts快50倍。(为什么每个语句包含多行值的插入语句比每个语句只包含一行的insert语句要慢得多,这对我来说是个谜。)
发布于 2011-05-28 21:57:03
您还可以使用bcp实用程序。我发现它比BULK INSERT语句更快、更容易使用。惟一的警告是,您可能需要在服务器上运行它&将您的文件放在服务器可访问的共享目录中。我不太确定你是否真的需要这样做。
https://stackoverflow.com/questions/6157504
复制相似问题