我需要从c#应用程序执行一个非常大的sql server插件。在20,000到50,000记录的范围内。
通过SQL Server执行插入的 最快 方式是什么?
我知道有几种选择,但我不知道哪种选择最快。
insert into MyTable(column1, column2, ..., column*)
select 'value','value',...,'value'
union
select 'value','value',...,'value'
OR
insert into MyTable(column1, column2, ..., column*)
exec('select ''value'',''value'',...,''value'''
'select ''value'',''value'',...,''value''')
OR
bulk insert from a data file
OR
Any better way that you know of :)
答案 0 :(得分:6)
从C#开始,您可以使用SqlBulkCopy,但对于整体原始速度,我希望您可以通过bcp获得更快,并且您可以真正调整SSIS。在这两种情况下,您都可以有效地使用外部可执行文件--bcp或dtexec。
答案 1 :(得分:4)
HTH