2014-01-13 24 views
1

我現在有這樣的SQL:實現刪除的最快方法,然後從一個數據庫插入另一個數據庫?

delete from [db_dest].[dbo].[Table1]; 

insert into [db_dest].[dbo].[Table1] select * from [db_src].[dbo].[Table1]; 

我有什麼其他固體選擇? MERGE可以更快嗎?

+2

MERGE是否會更快取決於您在更換所有行之前和之後'[db_dest]。[dbo]。[Table1]'的類似程度。例如如果它包含100萬行,並且您的刪除插入僅最終更改其中的2個,那麼是的,它可能會快得多。 –

回答

2

通常,如果您需要從表中刪除所有記錄 - 請考慮使用TRUNCATE TABLE。這樣更快,特別是當表中包含很多記錄時,使用DELETE FROM時會記錄每個單獨的記錄刪除。

合併通常不會比純粹的TRUNCATE TABLE後跟INSERT更快,因爲Merge必須在兩個表中逐字段比較記錄,以便能夠更新從源更改的記錄或者刪除源中不再可用的記錄。

相關問題