将数据加载从一个表插入另一个表的最快方法是什么?(SQL Server 2005)

Dan*_*ola 4 sql-server insert bulk

我基本上试图将数据从SQL Server 2005中的一个数据库中的表复制到另一个表,在同一个SQL Server实例中的另一个数据库中具有相同的结构(但很多索引).

我目前的方法是显而易见的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
Run Code Online (Sandbox Code Playgroud)

这大概是永久性的(1000万条记录需要1小时,而从索引表到没有索引的表需要20分钟).

最好的方法是什么?

谢谢!

Ada*_*Fox 5

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

----Disable Index
ALTER INDEX [*INDEX_NAME*] ON *TABLE_NAME* DISABLE
GO
----Enable Index
ALTER INDEX [*INDEX_NAME*] ON *TABLE_NAME* REBUILD
GO
Run Code Online (Sandbox Code Playgroud)