以最快的方式在两个不同的记录集之间复制大数据

时间:2016-09-10 09:58:57

标签: sql-server sql-server-2008 vb6

我在两个不同的位置有两个数据库,我使用以下代码将数据复制到从位置A到位置B的表中

set rst1 = conn.execute ("Select A1,A2,A3 from Tickets")
do until rst1.eof
conn2.execute ("Insert into Tickets values (rst1!A1, rst1!A2, rst1!A3)")
rst1.movenext
loop

现在数据库已经发展到超过100万条记录,在将数据复制到位置B时,需要花费很长时间来遍历所有记录

位置A和位置B中名为“Tickets”的数据库表是相同的,我可以使用哪些方法以最快的方式将位置A到B中的所有数据复制到B而无需遍历所有数百万条记录每一次。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用批量复制和插入,这将比基于事务的插入查询更快:

bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c

类似批量插入

BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail  
 FROM '\\computer2\salesforce\dailyorders\neworders.txt'

这会更快,因为它不是基于交易的

https://msdn.microsoft.com/en-us/library/ms175937.aspx