0

有一些員工分段任務導致需要插入到SQL Azure中的大量記錄(大約2000個)。記錄本身非常小約4個整數。 Azure工作者角色執行分段任務並將結果行插入到SQL Azure表中。隊列中可能會有多個這樣的任務(每個都有大約1000 - 2000行),因此每個插入操作都需要執行得非常快。sql azure批量大小

使用本地計算機對SQL Azure進行計時測試花費了大量時間(對於1000次插入大約需要2分鐘)。這可能是由於網絡延遲造成的。我假設來自worker角色的插入應該快得多。

但是,由於實體框架不能批量插入,我們正在考慮使用SQLBulkCopy。如果批量大小是1000,那麼使用SQLBulkcopy會導致查詢被遏制?有沒有推薦的方法?

+1

其中的一些可能並不適用於SQL Azure,但它們可能有助於閱讀:http://dba.stackexchange.com/questions/16763/how-do-i-run-a-large-script- with-many-inserts-without-run-out-of-memory http://stackoverflow.com/questions/8635818/multiple-insert-statements-vs-single-insert-with-multiple-values/8640583#8640583 – 2012-07-18 17:49:47

回答

2

大容量複製API應該可以完美地滿足您的需求,並可以顯着提高性能。

我已經測試了將批量大小爲2000的1000萬條記錄插入到Azure數據庫中,並且從本地計算機運行時沒有發生每批約10秒的性能限制。