2012-09-19 66 views
0

我有大約1,000,000多條記錄要插入到數據庫中。SQLBulkCopy vs DataAdapter用於插入/更新10lcs記錄

記錄具有相同的ID應該被其他人更新插入

更新/插入邏輯是寫在存儲過程

我使用DataAdapter.Update方法來做這項工作。

這是問題所在。

DataTable不會超過65,000條記錄。

插入/更新每秒只有60條記錄。

我該如何改進這個性能,並且可以在這裏使用SqlBulkCopy,它可以這樣做更新/插入在一起嗎?它會有什麼性能

+0

[使用到SqlBulkCopy的插入/更新數據庫]的可能重複(http://stackoverflow.com/問題/ 1700487 /使用-Sqlbulkcopy插入更新數據庫) –

+0

可能的重複[任何方式來SQLBulkCopy「插入或更新,如果存在」?](http://stackoverflow.com/questions/4889123/any-way -to-sqlbulkcopy-insert-or-update-if-exists) – StingyJack

+0

這是兩個單獨的問題。 Tony提到的第一個重複內容解決了性能問題,我提到的一個覆蓋了「我可以使用SQL Bulk Copy執行inser/update嗎?」 – StingyJack

回答

0

你是否將記錄加載到DataTable只是爲了插入更新?

如果是這樣,你可能會更好,直接調用一個SP,並跳過數據表。

或者你可以使用TVP和IEnumerable的SqlDataRecord,然後你不限於65000

An example of using IEnumerable SqlDataRecord