我對「用C#插入大量數據到DB中的麻煩方式」做了一些研究,然後很多人只是建議我使用SqlBulkCopy。在我嘗試了之後,它真的讓我感到驚訝。毫無疑問,SqlBulkCopy非常快。看起來SqlBulkCopy是插入數據(尤其是大數據)的完美方式。但是我們爲什麼不在任何時候都使用它。使用SqlBulkCopy有什麼缺點嗎?SqlBulkCopy的缺點是什麼
我能想到的
9
A
回答
9
兩個原因:據我所知
- ,它僅適用於Microsoft SQL Server的
- 在很多正常的工作負載,你不這樣做批量
insert
S,但偶爾insert
s與select
s和update
s混合。微軟自己聲稱,一個正常的insert
更有效率,在SqlBulkCopy
MSDN page。
請注意,如果您想要SqlBulkCopy
等效於普通插入,至少您必須將其傳遞給SqlBulkCopyOptions.CheckConstraints
參數。
13
對於Oracle v11,SqlBulkCopy也存在,但它是由安裝Oracle Client時獲得的Oracle .NET程序集提供的。 SqlBulkCopy類基本上由目標數據庫引擎的提供者逐一實現。
雖然 - 一個巨大的缺點 - 絕對沒有錯誤報告。例如,如果您已更新DataSet中的數據,使用適配器將其刷回DB,並且存在重要違規(或任何其他故障),則罪魁禍首DataRows將將.HasErrors設置爲true,並且您可以將其添加到您的異常消息,當它被提出。
使用SqlBulkCopy,你只需得到錯誤的類型,就是這樣。祝你好運調試它。
相關問題
- 1. TableAdapterManager的缺點是什麼?
- 2. XInitThreads()的缺點是什麼?
- 3. VirtualizingStackPanel的缺點是什麼?
- 4. callStackSymbols的缺點是什麼
- 5. DWR的缺點是什麼?
- 6. 使用LOGO的缺點/缺點是什麼?
- 7. 多繼承的缺點是什麼?
- 8. Gradle的當前缺點是什麼?
- 9. Android中sendSticyBroadcast()的缺點是什麼?
- 10. Stackless Python的缺點是什麼?
- 11. F#的優缺點是什麼?
- 12. 鏈接列表的缺點是什麼?
- 13. 紅黑樹的缺點是什麼?
- 14. 星型模式的缺點是什麼?
- 15. 是什麼<!DOCTYPE HTML>的缺點
- 16. MSR加速器的缺點是什麼
- 17. Perl Tk模塊的缺點是什麼?
- 18. 使用P/Invoke的缺點是什麼
- 19. 使用Signalr的優缺點是什麼
- 20. AJAX在Rails上的缺點是什麼?
- 21. Sitefinity CMS的缺點是什麼?
- 22. Java Bean Class的缺點是什麼?
- 23. 使用Shadow DOM的缺點是什麼?
- 24. 什麼是ElasticSearch文件的缺點值
- 25. '散列缺點'是什麼意思?
- 26. 什麼是持久性引擎(如ActiveRecord)?優點?缺點是什麼?
- 27. ConcurrentHashMap有什麼缺點嗎?
- 28. Typed DataSet有什麼缺點
- 29. Apache Wicket有什麼缺點?
- 30. std :: reverse_iterator有什麼缺點?
是的,SqlBulkCopy只能用於MS SQL Server。這也只是我知道的一個缺點。有時候這不是什麼大不了的事情。例如:我們的客戶只使用MS SQL Server,我們只用屬於System.Data.SqlClient命名空間的幾個類爲他們構建應用程序。 – 2009-06-12 16:56:50
爲什麼`SqlBulkCopyOptions.CheckConstraints`默認爲false? - 這是非常直觀的! – 2011-12-22 12:43:25