Speeindg up Entity Framework Inserts

ado.net entity-framework sqlbulkcopy sql-server-2008

Question

I'm working on an order system that can have anywhere from 1 to 200+ orders in it. Right now we have a loop that loops through each order and inserts it into the database. Would it make sense to use SqlBulkCopy? Would using it degrade performance on small orders? Are there any other techniques to speed up inserts?

Thanks!

Accepted Answer

Basically there are several things you can do.

  • using SqlBulkCopy.WriteToServer which doesn't work great together with EF, however there are several attempts to create extensions

  • using a stored procedure which will take one big record and split it according to some logic

  • using table-typed stored procedure parameters and do one call to the stored procedure (and several insert ... select inside the stored procedure)

Overall, I prefer third option.

Check this question Entity Framework Stored Procedure Table Value Parameter



Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why