2009-06-05 76 views
3

我基本上试图将数据从SQL Server 2005中的一个数据库中的表复制到另一个表,在同一个SQL Server实例中的另一个数据库中具有相同的结构(但很多索引)。从一个表到另一个表中插入数据的最快方式是什么? (SQL Server 2005)

我目前的做法是明显的INSERT/SELECT:

set identity_insert TargetDBName.dbo.TableName on 

insert into TargetDBName.dbo.TableName ([FieldsList]) 
    select [FieldsList] from TargetDBName.dbo.TableName  

set identity_insert SourceDBName.dbo.TableName off 

这需要约,永远(1小时10万条记录,而它花了20分钟,从表中做与索引的一个没有他们)。

这样做的最好方法是什么?

谢谢!

回答

4

我相信你的索引将在每次插入时重新计算,你应该尝试禁用索引,执行批量插入然后再次启用它们。看看是否能工程

----Disable Index 
ALTER INDEX [*INDEX_NAME*] ON *TABLE_NAME* DISABLE 
GO 
----Enable Index 
ALTER INDEX [*INDEX_NAME*] ON *TABLE_NAME* REBUILD 
GO 
+0

可能要格式化好一点吧现在第二个“ALTER INDEX”之上的所有内容都将被注释掉。 – 2009-06-05 19:50:39

相关问题