2009-06-05 64 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

相關問題