2013-07-17 39 views
4

ADO.net一次可以在數據庫中插入的記錄數量是否有限制?我們希望與sqlbulkcopy一起工作,但開發人員告訴我們ADO一次不會插入超過1000條記錄,所以sqlbulkcopy插入10000批記錄是無用的。這是真的? sqlbulkcopy是否每次都插入大批1000個,直到10000?ADO.NET和SQLBULKCOPY - 最大記錄限制插入?

我不認爲ADO有最大的記錄數量,但他們是開發人員,所以我不確定。

+0

誰會假定批量插入API在1k行最大?! – usr

+0

你應該測試什麼是最適合你的BatchSize。我不記得確切,但當我不得不將60-180k記錄導入分貝時,我不得不平衡速度和我的網絡服務器的處理器負載。找到正確的BatchSize,可以使您的CPU負載率達到最佳性能。 –

回答

2

這是不正確的。其實你必須設置BatchSize屬性,如果你想要一個,因爲默認是0,或者沒有限制。

此外,在查看SqlBulkCopy類的WriteToServerInternal方法之後,這是限制在單個批處理中發送的行數的唯一方法。

最後,即使您將它們發送到批次的1,000行,對於可插入的行的總數也沒有限制。那麼,除了運行機器的內存,例如通過DataTable完成。但是,如果通過SqlDataReader將數據從一臺服務器複製到另一臺服務器,則可以使用的總體限制,這可以以任何形式或形式達到。

0
BULKCOPY.BATCHSIZE=1000; 

這將幫助您解決批量複製錯誤。