6
我試圖添加()約18000對象到我的DBContext。花了大約5分鐘。使用SaveChanges()保存這些數據需要更長的時間。我切換到創建一個正常的列表並添加我的對象,之後我用SqlBulkCopy來堅持數據。這花了大約5秒鐘。在EF DBContext Add方法的引擎下發生了什麼?
Add方法做了什麼,這會花費很長時間?
我試圖添加()約18000對象到我的DBContext。花了大約5分鐘。使用SaveChanges()保存這些數據需要更長的時間。我切換到創建一個正常的列表並添加我的對象,之後我用SqlBulkCopy來堅持數據。這花了大約5秒鐘。在EF DBContext Add方法的引擎下發生了什麼?
Add方法做了什麼,這會花費很長時間?
所以會發生什麼情況是每次添加調用DetectChanges都會在上下文中執行。這列舉了整個對象圖,所以跟蹤每個單獨添加的時間越長,項目越多。 Theres一堆調整,你可以做到這一點以及東西去快(我的約1k/s插入我家vm)。
有效,不調整EF添加性能是O(n^2)
我進入這在相當多的細節,在下面的文章:
EntityFramework Performance and AutoDetectChanges
有關如何更DEETS快速EF可以執行調整時看看這裏:
(+1)。你還在談論這樣的事情嗎?:http://stackoverflow.com/questions/5940225/fastest-way-of-inserting-in-entity-framework –
是的,謝謝你 – Kenci